diff --git a/NuGet.Config b/NuGet.Config
index fd5ce235a39..319299b8222 100644
--- a/NuGet.Config
+++ b/NuGet.Config
@@ -3,6 +3,7 @@
+
diff --git a/scripts/dotnet-cli-build/CompileTargets.cs b/scripts/dotnet-cli-build/CompileTargets.cs
index f63e73b2db3..dc989b83c2d 100644
--- a/scripts/dotnet-cli-build/CompileTargets.cs
+++ b/scripts/dotnet-cli-build/CompileTargets.cs
@@ -324,7 +324,7 @@ public static BuildTargetResult CompileStage1(BuildTargetContext c)
Directory.CreateDirectory(Dirs.Stage1);
CopySharedHost(Dirs.Stage1);
- PublishSharedFramework(c, Dirs.Stage1, DotNetCli.Stage0);
+ PublishSharedFramework(c, Dirs.Stage1, DotNetCli.Stage0, nuGetVersion: "3.5.0-rc-1285");
var result = CompileCliSdk(c,
dotnet: DotNetCli.Stage0,
outputDir: Dirs.Stage1);
@@ -350,7 +350,12 @@ public static BuildTargetResult CompileStage2(BuildTargetContext c)
}
Directory.CreateDirectory(Dirs.Stage2);
- PublishSharedFramework(c, Dirs.Stage2, DotNetCli.Stage1);
+ // Restore again, with Stage1.
+ // NOTE: This is necessary for bootstrapping https://github.com/dotnet/cli/issues/2874.
+ // This code will be removed after change has made its way into stage 0.
+ Restore(c, DotNetCli.Stage1);
+
+ PublishSharedFramework(c, Dirs.Stage2, DotNetCli.Stage1, nuGetVersion: null);
CopySharedHost(Dirs.Stage2);
var result = CompileCliSdk(c,
dotnet: DotNetCli.Stage1,
@@ -470,7 +475,7 @@ private static void CopySharedHost(string outputDir)
Path.Combine(outputDir, DotnetHostFxrBaseName), true);
}
- public static void PublishSharedFramework(BuildTargetContext c, string outputDir, DotNetCli dotnetCli)
+ public static void PublishSharedFramework(BuildTargetContext c, string outputDir, DotNetCli dotnetCli, string nuGetVersion)
{
string SharedFrameworkTemplateSourceRoot = Path.Combine(Dirs.RepoRoot, "src", "sharedframework", "framework");
string SharedFrameworkNugetVersion = c.BuildContext.Get("SharedFrameworkNugetVersion");
@@ -539,6 +544,33 @@ public static void PublishSharedFramework(BuildTargetContext c, string outputDir
var runtimeGraphGeneratorProject = Path.Combine(Dirs.RepoRoot, "tools", runtimeGraphGeneratorName);
var runtimeGraphGeneratorOutput = Path.Combine(Dirs.Output, "tools", runtimeGraphGeneratorName);
+ // Override the NuGet version the RuntimeGraphGenerator depends on.
+ // NOTE: This is necessary for bootstrapping https://github.com/dotnet/cli/issues/2874.
+ // This code will be removed after change has made its way into stage 0.
+ var originals = new[]
+ {
+ new { Path = (string)null, Content = (byte[])null }
+ };
+ if (nuGetVersion != null)
+ {
+ originals = new[]
+ {
+ Path.Combine("src", "dotnet"),
+ Path.Combine("src", "Microsoft.DotNet.Cli.Utils"),
+ Path.Combine("src", "Microsoft.DotNet.ProjectModel"),
+ Path.Combine("tools", runtimeGraphGeneratorName)
+ }
+ .Select(p => Path.Combine(Dirs.RepoRoot, p, "project.json"))
+ .Select(p => new
+ {
+ Path = p,
+ Content = UpdateNuGetVersion(c, p, nuGetVersion)
+ })
+ .ToArray();
+
+ Restore(c, dotnetCli);
+ }
+
dotnetCli.Publish(
"--output", runtimeGraphGeneratorOutput,
runtimeGraphGeneratorProject).Execute().EnsureSuccessful();
@@ -547,6 +579,18 @@ public static void PublishSharedFramework(BuildTargetContext c, string outputDir
Cmd(runtimeGraphGeneratorExe, "--project", SharedFrameworkSourceRoot, "--deps", destinationDeps, runtimeGraphGeneratorRuntime)
.Execute()
.EnsureSuccessful();
+
+ // NOTE: This is necessary for bootstrapping https://github.com/dotnet/cli/issues/2874.
+ // This code will be removed after change has made its way into stage 0.
+ if (nuGetVersion != null)
+ {
+ foreach (var original in originals)
+ {
+ RestoreNuGetVersion(c, original.Path, original.Content);
+ }
+
+ Restore(c, dotnetCli);
+ }
}
else
{
@@ -584,6 +628,58 @@ public static void PublishSharedFramework(BuildTargetContext c, string outputDir
File.WriteAllText(Path.Combine(SharedFrameworkNameAndVersionRoot, ".version"), content);
}
+ private static byte[] UpdateNuGetVersion(BuildTargetContext c, string projectJsonPath, string version)
+ {
+ c.Warn($"Setting the NuGet version in {projectJsonPath} to {version}.");
+
+ var encoding = new UTF8Encoding(false);
+
+ var originalBytes = File.ReadAllBytes(projectJsonPath);
+ var originalJson = encoding.GetString(originalBytes);
+ var projectJson = JsonConvert.DeserializeObject(originalJson);
+ var dependencies = (JObject)projectJson["dependencies"];
+ foreach (var property in dependencies.Properties())
+ {
+ if (property.Name.StartsWith("NuGet."))
+ {
+ if (property.Value.Type == JTokenType.String)
+ {
+ property.Value = version;
+ }
+ else
+ {
+ property.Value["version"] = version;
+ }
+ }
+ }
+
+ var newJson = JsonConvert.SerializeObject(projectJson, Formatting.Indented);
+ var newBytes = encoding.GetBytes(newJson);
+
+ File.WriteAllBytes(projectJsonPath, newBytes);
+
+ return originalBytes;
+ }
+
+ private static void RestoreNuGetVersion(BuildTargetContext c, string projectJsonPath, byte[] originalBytes)
+ {
+ c.Warn($"Restoring the original NuGet version to {projectJsonPath}.");
+
+ File.WriteAllBytes(projectJsonPath, originalBytes);
+ }
+
+ private static void Restore(BuildTargetContext c, DotNetCli dotnetCli)
+ {
+ dotnetCli.Restore("--verbosity", "verbose", "--disable-parallel", "--fallbacksource", Dirs.CorehostLocalPackages)
+ .WorkingDirectory(Path.Combine(Dirs.RepoRoot, "src"))
+ .Execute()
+ .EnsureSuccessful();
+ dotnetCli.Restore("--verbosity", "verbose", "--disable-parallel", "--infer-runtimes")
+ .WorkingDirectory(Path.Combine(Dirs.RepoRoot, "tools"))
+ .Execute()
+ .EnsureSuccessful();
+ }
+
///
/// Generates the real shared framework project that will get published.
///
diff --git a/scripts/update-dependencies/project.json b/scripts/update-dependencies/project.json
index 4d810e3a85b..38be8d4ac43 100644
--- a/scripts/update-dependencies/project.json
+++ b/scripts/update-dependencies/project.json
@@ -9,7 +9,7 @@
"Microsoft.CSharp": "4.0.1-rc2-24027",
"System.Runtime.Serialization.Primitives": "4.1.1-rc2-24027",
"Microsoft.DotNet.Cli.Build.Framework": "1.0.0-*",
- "NuGet.Versioning": "3.5.0-beta",
+ "NuGet.Versioning": "3.5.0-rc-862",
"Newtonsoft.Json": "7.0.1",
"Octokit": "0.18.0",
"Microsoft.Net.Http": "2.2.29"
diff --git a/src/Microsoft.DotNet.Cli.Utils/CommandResolution/ToolPathCalculator.cs b/src/Microsoft.DotNet.Cli.Utils/CommandResolution/ToolPathCalculator.cs
index dcb0f15e379..8ac6ecd3890 100644
--- a/src/Microsoft.DotNet.Cli.Utils/CommandResolution/ToolPathCalculator.cs
+++ b/src/Microsoft.DotNet.Cli.Utils/CommandResolution/ToolPathCalculator.cs
@@ -55,7 +55,7 @@ public string GetLockFilePath(string packageId, NuGetVersion version, NuGetFrame
return Path.Combine(
GetBaseToolPath(packageId),
- version.ToNormalizedString(),
+ version.ToNormalizedString().ToLowerInvariant(),
framework.GetShortFolderName(),
"project.lock.json");
}
@@ -65,7 +65,7 @@ private string GetBaseToolPath(string packageId)
return Path.Combine(
_packagesDirectory,
".tools",
- packageId);
+ packageId.ToLowerInvariant());
}
private IEnumerable GetAvailableToolVersions(string packageId)
diff --git a/src/Microsoft.DotNet.Cli.Utils/project.json b/src/Microsoft.DotNet.Cli.Utils/project.json
index 66349565764..ee43b74e1ad 100644
--- a/src/Microsoft.DotNet.Cli.Utils/project.json
+++ b/src/Microsoft.DotNet.Cli.Utils/project.json
@@ -6,10 +6,10 @@
},
"dependencies": {
"Microsoft.DotNet.ProjectModel": { "target": "project" },
- "NuGet.Versioning": "3.5.0-beta",
- "NuGet.Packaging": "3.5.0-beta",
- "NuGet.Frameworks": "3.5.0-beta",
- "NuGet.ProjectModel": "3.5.0-beta"
+ "NuGet.Versioning": "3.5.0-rc-862",
+ "NuGet.Packaging": "3.5.0-rc-862",
+ "NuGet.Frameworks": "3.5.0-rc-862",
+ "NuGet.ProjectModel": "3.5.0-rc-862"
},
"frameworks": {
"net451": {
diff --git a/src/Microsoft.DotNet.ProjectModel/Graph/LockFilePackageLibrary.cs b/src/Microsoft.DotNet.ProjectModel/Graph/LockFilePackageLibrary.cs
index f8c2d298657..3713dcb3580 100644
--- a/src/Microsoft.DotNet.ProjectModel/Graph/LockFilePackageLibrary.cs
+++ b/src/Microsoft.DotNet.ProjectModel/Graph/LockFilePackageLibrary.cs
@@ -16,6 +16,8 @@ public class LockFilePackageLibrary
public string Sha512 { get; set; }
+ public string Path { get; set; }
+
public IList Files { get; set; } = new List();
}
}
diff --git a/src/Microsoft.DotNet.ProjectModel/Graph/LockFileReader.cs b/src/Microsoft.DotNet.ProjectModel/Graph/LockFileReader.cs
index 9d7a070e3f1..b9a50a7ed58 100644
--- a/src/Microsoft.DotNet.ProjectModel/Graph/LockFileReader.cs
+++ b/src/Microsoft.DotNet.ProjectModel/Graph/LockFileReader.cs
@@ -151,6 +151,7 @@ private void ReadLibrary(JObject json, LockFile lockFile)
Version = version,
IsServiceable = ReadBool(value, "serviceable", defaultValue: false),
Sha512 = ReadString(value["sha512"]),
+ Path = value.Value("path"),
Files = ReadPathArray(value["files"], ReadString)
});
}
diff --git a/src/Microsoft.DotNet.ProjectModel/Resolution/LibraryManager.cs b/src/Microsoft.DotNet.ProjectModel/Resolution/LibraryManager.cs
index 98fdc503807..f20feaa3585 100644
--- a/src/Microsoft.DotNet.ProjectModel/Resolution/LibraryManager.cs
+++ b/src/Microsoft.DotNet.ProjectModel/Resolution/LibraryManager.cs
@@ -170,11 +170,6 @@ public IList GetAllDiagnostics()
continue;
}
- if (library.Identity.Version.IsPrerelease && !versionRange.IncludePrerelease)
- {
- versionRange = VersionRange.SetIncludePrerelease(versionRange, includePrerelease: true);
- }
-
if (item.Library != library && !versionRange.Satisfies(library.Identity.Version))
{
var message = $"Dependency conflict. {item.Library.Identity} expected {FormatLibraryRange(item.Dependency)} but got {library.Identity.Version}";
diff --git a/src/Microsoft.DotNet.ProjectModel/Resolution/PackageDependencyProvider.cs b/src/Microsoft.DotNet.ProjectModel/Resolution/PackageDependencyProvider.cs
index df0bdf64f2b..521ff8a0437 100644
--- a/src/Microsoft.DotNet.ProjectModel/Resolution/PackageDependencyProvider.cs
+++ b/src/Microsoft.DotNet.ProjectModel/Resolution/PackageDependencyProvider.cs
@@ -15,11 +15,13 @@ namespace Microsoft.DotNet.ProjectModel.Resolution
{
public class PackageDependencyProvider
{
+ private readonly string _packagesPath;
private readonly VersionFolderPathResolver _packagePathResolver;
private readonly FrameworkReferenceResolver _frameworkReferenceResolver;
public PackageDependencyProvider(string packagesPath, FrameworkReferenceResolver frameworkReferenceResolver)
{
+ _packagesPath = packagesPath;
_packagePathResolver = new VersionFolderPathResolver(packagesPath);
_frameworkReferenceResolver = frameworkReferenceResolver;
}
@@ -40,7 +42,16 @@ public PackageDescription GetDescription(NuGetFramework targetFramework, LockFil
var dependencies = new List(targetLibrary.Dependencies.Count + targetLibrary.FrameworkAssemblies.Count);
PopulateDependencies(dependencies, targetLibrary, targetFramework);
- var path = _packagePathResolver.GetInstallPath(package.Name, package.Version);
+ string path;
+ if (package.Path != null)
+ {
+ path = Path.Combine(_packagesPath, package.Path);
+ }
+ else
+ {
+ path = _packagePathResolver.GetInstallPath(package.Name, package.Version);
+ }
+
var exists = Directory.Exists(path);
if (exists)
diff --git a/src/Microsoft.DotNet.ProjectModel/project.json b/src/Microsoft.DotNet.ProjectModel/project.json
index 70ef5c39167..9a3d67b6f2b 100644
--- a/src/Microsoft.DotNet.ProjectModel/project.json
+++ b/src/Microsoft.DotNet.ProjectModel/project.json
@@ -7,8 +7,8 @@
"dependencies": {
"Microsoft.Extensions.DependencyModel": { "target": "project" },
"Newtonsoft.Json": "7.0.1",
- "NuGet.Packaging": "3.5.0-beta",
- "NuGet.RuntimeModel": "3.5.0-beta",
+ "NuGet.Packaging": "3.5.0-rc-862",
+ "NuGet.RuntimeModel": "3.5.0-rc-862",
"System.Reflection.Metadata": "1.3.0-rc2-24027"
},
"frameworks": {
diff --git a/src/Microsoft.Extensions.DependencyModel/Resolution/PackageCacheCompilationAssemblyResolver.cs b/src/Microsoft.Extensions.DependencyModel/Resolution/PackageCacheCompilationAssemblyResolver.cs
index 156ea0622b2..7497f0e0876 100644
--- a/src/Microsoft.Extensions.DependencyModel/Resolution/PackageCacheCompilationAssemblyResolver.cs
+++ b/src/Microsoft.Extensions.DependencyModel/Resolution/PackageCacheCompilationAssemblyResolver.cs
@@ -53,7 +53,8 @@ public bool TryResolveAssemblyPaths(CompilationLibrary library, List ass
if (ResolverUtils.TryResolvePackagePath(_fileSystem, library, _packageCacheDirectory, out packagePath))
{
var hashAlgorithm = library.Hash.Substring(0, hashSplitterPos);
- var cacheHashPath = Path.Combine(packagePath, $"{library.Name}.{library.Version}.nupkg.{hashAlgorithm}");
+ var cacheHashFileName = $"{library.Name.ToLowerInvariant()}.{library.Version.ToLowerInvariant()}.nupkg.{hashAlgorithm}";
+ var cacheHashPath = Path.Combine(packagePath, cacheHashFileName);
if (_fileSystem.File.Exists(cacheHashPath) &&
_fileSystem.File.ReadAllText(cacheHashPath) == library.Hash.Substring(hashSplitterPos + 1))
diff --git a/src/Microsoft.Extensions.DependencyModel/Resolution/ResolverUtils.cs b/src/Microsoft.Extensions.DependencyModel/Resolution/ResolverUtils.cs
index b9b93d2765c..e105ad8c59c 100644
--- a/src/Microsoft.Extensions.DependencyModel/Resolution/ResolverUtils.cs
+++ b/src/Microsoft.Extensions.DependencyModel/Resolution/ResolverUtils.cs
@@ -12,7 +12,11 @@ internal static class ResolverUtils
{
internal static bool TryResolvePackagePath(IFileSystem fileSystem, CompilationLibrary library, string basePath, out string packagePath)
{
- packagePath = Path.Combine(basePath, library.Name, library.Version);
+ packagePath = Path.Combine(
+ basePath,
+ library.Name.ToLowerInvariant(),
+ library.Version.ToLowerInvariant());
+
if (fileSystem.Directory.Exists(packagePath))
{
return true;
diff --git a/src/corehost/cli/deps_entry.cpp b/src/corehost/cli/deps_entry.cpp
index 92fa9c2a47a..66e46cca160 100644
--- a/src/corehost/cli/deps_entry.cpp
+++ b/src/corehost/cli/deps_entry.cpp
@@ -104,8 +104,8 @@ bool deps_entry_t::to_full_path(const pal::string_t& base, pal::string_t* str) c
}
pal::string_t new_base = base;
- append_path(&new_base, library_name.c_str());
- append_path(&new_base, library_version.c_str());
+ append_path(&new_base, pal::to_lower(library_name).c_str());
+ append_path(&new_base, pal::to_lower(library_version).c_str());
return to_rel_path(new_base, str);
}
@@ -154,9 +154,9 @@ bool deps_entry_t::to_hash_matched_path(const pal::string_t& base, pal::string_t
// Build the nupkg file name. Just reserve approx 8 char_t's for the algorithm name.
pal::string_t nupkg_filename;
nupkg_filename.reserve(library_name.length() + 1 + library_version.length() + 16);
- nupkg_filename.append(library_name);
+ nupkg_filename.append(pal::to_lower(library_name));
nupkg_filename.append(_X("."));
- nupkg_filename.append(library_version);
+ nupkg_filename.append(pal::to_lower(library_version));
nupkg_filename.append(_X(".nupkg."));
nupkg_filename.append(library_hash.substr(0, pos));
@@ -164,8 +164,8 @@ bool deps_entry_t::to_hash_matched_path(const pal::string_t& base, pal::string_t
pal::string_t hash_file;
hash_file.reserve(base.length() + library_name.length() + library_version.length() + nupkg_filename.length() + 3);
hash_file.assign(base);
- append_path(&hash_file, library_name.c_str());
- append_path(&hash_file, library_version.c_str());
+ append_path(&hash_file, pal::to_lower(library_name).c_str());
+ append_path(&hash_file, pal::to_lower(library_version).c_str());
append_path(&hash_file, nupkg_filename.c_str());
// Read the contents of the hash file.
diff --git a/src/dotnet/project.json b/src/dotnet/project.json
index 679ba240ea4..ad1f7843282 100644
--- a/src/dotnet/project.json
+++ b/src/dotnet/project.json
@@ -17,10 +17,10 @@
],
"dependencies": {
"NuGet.Commands": {
- "version": "3.5.0-beta",
+ "version": "3.5.0-rc-862",
"exclude": "compile"
},
- "NuGet.CommandLine.XPlat": "3.5.0-beta",
+ "NuGet.CommandLine.XPlat": "3.5.0-rc-862",
"Newtonsoft.Json": "7.0.1",
"System.Text.Encoding.CodePages": "4.0.1-rc2-24027",
"System.Diagnostics.FileVersionInfo": "4.0.0-rc2-24027",
diff --git a/test/Microsoft.DotNet.Cli.Utils.Tests/GivenAProjectDependenciesCommandFactory.cs b/test/Microsoft.DotNet.Cli.Utils.Tests/GivenAProjectDependenciesCommandFactory.cs
index 2df9faf8543..e89dc34d8db 100644
--- a/test/Microsoft.DotNet.Cli.Utils.Tests/GivenAProjectDependenciesCommandFactory.cs
+++ b/test/Microsoft.DotNet.Cli.Utils.Tests/GivenAProjectDependenciesCommandFactory.cs
@@ -167,7 +167,7 @@ public void It_resolves_tools_whose_package_name_is_different_than_dll_name()
var command = factory.Create("dotnet-tool-with-output-name", null);
command.CommandArgs.Should().Contain(
- Path.Combine("ToolWithOutputName", "1.0.0", "lib", "netcoreapp1.0", "dotnet-tool-with-output-name.dll"));
+ Path.Combine("toolwithoutputname", "1.0.0", "lib", "netcoreapp1.0", "dotnet-tool-with-output-name.dll"));
}
}
}
diff --git a/test/Microsoft.DotNet.Cli.Utils.Tests/project.json b/test/Microsoft.DotNet.Cli.Utils.Tests/project.json
index ed18f288f7a..94b8714023b 100644
--- a/test/Microsoft.DotNet.Cli.Utils.Tests/project.json
+++ b/test/Microsoft.DotNet.Cli.Utils.Tests/project.json
@@ -11,10 +11,10 @@
},
"System.Diagnostics.TraceSource": "4.0.0-rc2-24027",
"System.Runtime.Serialization.Primitives": "4.1.1-rc2-24027",
- "NuGet.Versioning": "3.5.0-beta",
- "NuGet.Packaging": "3.5.0-beta",
- "NuGet.Frameworks": "3.5.0-beta",
- "NuGet.ProjectModel": "3.5.0-beta",
+ "NuGet.Versioning": "3.5.0-rc-862",
+ "NuGet.Packaging": "3.5.0-rc-862",
+ "NuGet.Frameworks": "3.5.0-rc-862",
+ "NuGet.ProjectModel": "3.5.0-rc-862",
"Microsoft.DotNet.ProjectModel": {
"target": "project"
},
diff --git a/test/Microsoft.DotNet.ProjectModel.Tests/LockFileReaderTests.cs b/test/Microsoft.DotNet.ProjectModel.Tests/LockFileReaderTests.cs
new file mode 100644
index 00000000000..e3385b544d4
--- /dev/null
+++ b/test/Microsoft.DotNet.ProjectModel.Tests/LockFileReaderTests.cs
@@ -0,0 +1,54 @@
+// Copyright (c) .NET Foundation and contributors. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+using System.IO;
+using System.Text;
+using FluentAssertions;
+using Microsoft.DotNet.ProjectModel.Graph;
+using Xunit;
+using NuGet.Versioning;
+
+namespace Microsoft.DotNet.ProjectModel.Tests
+{
+ public class LockFileReaderTests
+ {
+ [Theory]
+ [InlineData("", null)]
+ [InlineData(@"""path"": null,", null)]
+ [InlineData(@"""path"": ""foo/1.0.0"",", "foo/1.0.0")]
+ public void AllowsPackageLibraryPath(string pathProperty, string expected)
+ {
+ // Arrange
+ var reader = new LockFileReader();
+ var lockFileJson = @"
+ {
+ ""libraries"": {
+ ""Foo/1.0.0"": {
+ ""sha512"": ""something"",
+ " + pathProperty + @"
+ ""type"": ""package"",
+ ""files"": [
+ ""lib/netstandard1.0/Foo.dll""
+ ]
+ }
+ }
+ }
+ ";
+ var memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(lockFileJson));
+
+ // Act
+ var lockFile = reader.ReadLockFile("project.lock.json", memoryStream, false);
+
+ // Assert
+ lockFile.PackageLibraries.Should().HaveCount(1);
+ var library = lockFile.PackageLibraries[0];
+ library.Path.Should().Be(expected);
+
+ library.Name.Should().Be("Foo");
+ library.Version.Should().Be(new NuGetVersion("1.0.0"));
+ library.Sha512.Should().Be("something");
+ library.Files.Should().HaveCount(1);
+ library.Files[0].Should().Be(Path.Combine("lib", "netstandard1.0", "Foo.dll"));
+ }
+ }
+}
diff --git a/test/Microsoft.Extensions.DependencyModel.Tests/PackageCacheResolverTest.cs b/test/Microsoft.Extensions.DependencyModel.Tests/PackageCacheResolverTest.cs
index 7ea550b9804..c76b806a0e4 100644
--- a/test/Microsoft.Extensions.DependencyModel.Tests/PackageCacheResolverTest.cs
+++ b/test/Microsoft.Extensions.DependencyModel.Tests/PackageCacheResolverTest.cs
@@ -55,10 +55,15 @@ public void FailsOnInvalidHash(string hash)
[Fact]
public void ChecksHashFile()
{
- var packagePath = Path.Combine(CachePath, F.DefaultPackageName, F.DefaultVersion);
+ var packagePath = Path.Combine(
+ CachePath,
+ F.DefaultPackageName.ToLowerInvariant(),
+ F.DefaultVersion.ToLowerInvariant());
var fileSystem = FileSystemMockBuilder.Create()
.AddFile(
- Path.Combine(packagePath, $"{F.DefaultPackageName}.{F.DefaultVersion}.nupkg.{F.DefaultHashAlgoritm}"),
+ Path.Combine(
+ packagePath,
+ $"{F.DefaultPackageName.ToLowerInvariant()}.{F.DefaultVersion.ToLowerInvariant()}.nupkg.{F.DefaultHashAlgoritm}"),
"WRONGHASH"
)
.AddFiles(packagePath, F.DefaultAssemblies)
@@ -74,10 +79,15 @@ public void ChecksHashFile()
[Fact]
public void ResolvesAllAssemblies()
{
- var packagePath = Path.Combine(CachePath, F.DefaultPackageName, F.DefaultVersion);
+ var packagePath = Path.Combine(
+ CachePath,
+ F.DefaultPackageName.ToLowerInvariant(),
+ F.DefaultVersion.ToLowerInvariant());
var fileSystem = FileSystemMockBuilder.Create()
.AddFile(
- Path.Combine(packagePath, $"{F.DefaultPackageName}.{F.DefaultVersion}.nupkg.{F.DefaultHashAlgoritm}"),
+ Path.Combine(
+ packagePath,
+ $"{F.DefaultPackageName.ToLowerInvariant()}.{F.DefaultVersion.ToLowerInvariant()}.nupkg.{F.DefaultHashAlgoritm}"),
F.DefaultHashValue
)
.AddFiles(packagePath, F.TwoAssemblies)
@@ -98,10 +108,15 @@ public void ResolvesAllAssemblies()
[Fact]
public void FailsWhenOneOfAssembliesNotFound()
{
- var packagePath = Path.Combine(CachePath, F.DefaultPackageName, F.DefaultVersion);
+ var packagePath = Path.Combine(
+ CachePath,
+ F.DefaultPackageName.ToLowerInvariant(),
+ F.DefaultVersion.ToLowerInvariant());
var fileSystem = FileSystemMockBuilder.Create()
.AddFile(
- Path.Combine(packagePath, $"{F.DefaultPackageName}.{F.DefaultVersion}.nupkg.{F.DefaultHashAlgoritm}"),
+ Path.Combine(
+ packagePath,
+ $"{F.DefaultPackageName.ToLowerInvariant()}.{F.DefaultVersion.ToLowerInvariant()}.nupkg.{F.DefaultHashAlgoritm}"),
F.DefaultHashValue
)
.AddFiles(packagePath, F.DefaultAssemblyPath)
diff --git a/test/Microsoft.Extensions.DependencyModel.Tests/PackageResolverTest.cs b/test/Microsoft.Extensions.DependencyModel.Tests/PackageResolverTest.cs
index c6727db7fad..8428d61940a 100644
--- a/test/Microsoft.Extensions.DependencyModel.Tests/PackageResolverTest.cs
+++ b/test/Microsoft.Extensions.DependencyModel.Tests/PackageResolverTest.cs
@@ -17,7 +17,7 @@ public class PackageResolverTest
private static string PackagesPath = Path.Combine("package", "directory", "location");
[Fact]
- public void SholdUseEnvironmentVariableToGetDefaultLocation()
+ public void ShouldUseEnvironmentVariableToGetDefaultLocation()
{
var environment = EnvironmentMockBuilder.Create()
.AddVariable("NUGET_PACKAGES", PackagesPath)
@@ -29,7 +29,7 @@ public void SholdUseEnvironmentVariableToGetDefaultLocation()
[Fact]
- public void SholdUseNugetUnderUserProfileOnWindows()
+ public void ShouldUseNuGetUnderUserProfileOnWindows()
{
var environment = EnvironmentMockBuilder.Create()
.AddVariable("USERPROFILE", "User Profile")
@@ -40,7 +40,7 @@ public void SholdUseNugetUnderUserProfileOnWindows()
}
[Fact]
- public void SholdUseNugetUnderHomeOnNonWindows()
+ public void ShouldUseNuGetUnderHomeOnNonWindows()
{
var environment = EnvironmentMockBuilder.Create()
.AddVariable("HOME", "User Home")
@@ -53,7 +53,10 @@ public void SholdUseNugetUnderHomeOnNonWindows()
[Fact]
public void ResolvesAllAssemblies()
{
- var packagePath = Path.Combine(PackagesPath, F.DefaultPackageName, F.DefaultVersion);
+ var packagePath = Path.Combine(
+ PackagesPath,
+ F.DefaultPackageName.ToLowerInvariant(),
+ F.DefaultVersion.ToLowerInvariant());
var fileSystem = FileSystemMockBuilder.Create()
.AddFiles(packagePath, F.TwoAssemblies)
.Build();
@@ -73,7 +76,10 @@ public void ResolvesAllAssemblies()
[Fact]
public void FailsWhenOneOfAssembliesNotFound()
{
- var packagePath = Path.Combine(PackagesPath, F.DefaultPackageName, F.DefaultVersion);
+ var packagePath = Path.Combine(
+ PackagesPath,
+ F.DefaultPackageName.ToLowerInvariant(),
+ F.DefaultVersion.ToLowerInvariant());
var fileSystem = FileSystemMockBuilder.Create()
.AddFiles(packagePath, F.DefaultAssemblyPath)
.Build();
diff --git a/tools/RuntimeGraphGenerator/project.json b/tools/RuntimeGraphGenerator/project.json
index 002b265cec0..e2f206ad746 100644
--- a/tools/RuntimeGraphGenerator/project.json
+++ b/tools/RuntimeGraphGenerator/project.json
@@ -4,8 +4,8 @@
"emitEntryPoint": true
},
"dependencies": {
- "NuGet.RuntimeModel": "3.5.0-beta",
- "NuGet.Versioning": "3.5.0-beta",
+ "NuGet.RuntimeModel": "3.5.0-rc-862",
+ "NuGet.Versioning": "3.5.0-rc-862",
"System.CommandLine": "0.1.0-e160119-1",
"System.Runtime.Serialization.Json": "4.0.2-rc2-24027",
"Microsoft.DotNet.ProjectModel": { "target": "project" },