Workaround native deps resolver not lower casing the file paths into the NuGet cache.
This is needed until https://github.com/dotnet/core-setup/pull/64 is merged.
This commit is contained in:
parent
74da44a2bf
commit
efc0efe4f9
5 changed files with 43 additions and 27 deletions
|
@ -117,7 +117,9 @@ namespace Microsoft.Extensions.DependencyModel
|
||||||
{
|
{
|
||||||
return new JObject(
|
return new JObject(
|
||||||
libraries.Select(library =>
|
libraries.Select(library =>
|
||||||
new JProperty(library.Name + DependencyContextStrings.VersionSeperator + library.Version, WriteTargetLibrary(library))));
|
// TODO: remove the hack of calling "ToLowerInvariant()" on library Name and Version once
|
||||||
|
// https://github.com/dotnet/core-setup/pull/64/ is merged and taken into the CLI
|
||||||
|
new JProperty(library.Name.ToLowerInvariant() + DependencyContextStrings.VersionSeperator + library.Version.ToLowerInvariant(), WriteTargetLibrary(library))));
|
||||||
}
|
}
|
||||||
|
|
||||||
private JObject WritePortableTarget(IReadOnlyList<RuntimeLibrary> runtimeLibraries, IReadOnlyList<CompilationLibrary> compilationLibraries)
|
private JObject WritePortableTarget(IReadOnlyList<RuntimeLibrary> runtimeLibraries, IReadOnlyList<CompilationLibrary> compilationLibraries)
|
||||||
|
@ -145,7 +147,9 @@ namespace Microsoft.Extensions.DependencyModel
|
||||||
|
|
||||||
var library = (Library)compilationLibrary ?? (Library)runtimeLibrary;
|
var library = (Library)compilationLibrary ?? (Library)runtimeLibrary;
|
||||||
targetObject.Add(
|
targetObject.Add(
|
||||||
new JProperty(library.Name + DependencyContextStrings.VersionSeperator + library.Version,
|
// TODO: remove the hack of calling "ToLowerInvariant()" on library Name and Version once
|
||||||
|
// https://github.com/dotnet/core-setup/pull/64/ is merged and taken into the CLI
|
||||||
|
new JProperty(library.Name.ToLowerInvariant() + DependencyContextStrings.VersionSeperator + library.Version.ToLowerInvariant(),
|
||||||
WritePortableTargetLibrary(runtimeLibrary, compilationLibrary)
|
WritePortableTargetLibrary(runtimeLibrary, compilationLibrary)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
@ -313,7 +317,9 @@ namespace Microsoft.Extensions.DependencyModel
|
||||||
{
|
{
|
||||||
var allLibraries =
|
var allLibraries =
|
||||||
context.RuntimeLibraries.Cast<Library>().Concat(context.CompileLibraries)
|
context.RuntimeLibraries.Cast<Library>().Concat(context.CompileLibraries)
|
||||||
.GroupBy(library => library.Name + DependencyContextStrings.VersionSeperator + library.Version);
|
// TODO: remove the hack of calling "ToLowerInvariant()" on library Name and Version once
|
||||||
|
// https://github.com/dotnet/core-setup/pull/64/ is merged and taken into the CLI
|
||||||
|
.GroupBy(library => library.Name.ToLowerInvariant() + DependencyContextStrings.VersionSeperator + library.Version.ToLowerInvariant());
|
||||||
|
|
||||||
return new JObject(allLibraries.Select(libraries => new JProperty(libraries.Key, WriteLibrary(libraries.First()))));
|
return new JObject(allLibraries.Select(libraries => new JProperty(libraries.Key, WriteLibrary(libraries.First()))));
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,6 +60,13 @@ namespace Microsoft.DotNet.Tools.Test.Utilities
|
||||||
return new AndConstraint<CommandResultAssertions>(this);
|
return new AndConstraint<CommandResultAssertions>(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public AndConstraint<CommandResultAssertions> HaveStdOutContainingIgnoreCase(string pattern)
|
||||||
|
{
|
||||||
|
Execute.Assertion.ForCondition(_commandResult.StdOut.IndexOf(pattern, StringComparison.OrdinalIgnoreCase) >= 0)
|
||||||
|
.FailWith(AppendDiagnosticsTo($"The command output did not contain expected result (ignoring case): {pattern}{Environment.NewLine}"));
|
||||||
|
return new AndConstraint<CommandResultAssertions>(this);
|
||||||
|
}
|
||||||
|
|
||||||
public AndConstraint<CommandResultAssertions> HaveStdOutMatching(string pattern, RegexOptions options = RegexOptions.None)
|
public AndConstraint<CommandResultAssertions> HaveStdOutMatching(string pattern, RegexOptions options = RegexOptions.None)
|
||||||
{
|
{
|
||||||
Execute.Assertion.ForCondition(Regex.Match(_commandResult.StdOut, pattern, options).Success)
|
Execute.Assertion.ForCondition(Regex.Match(_commandResult.StdOut, pattern, options).Success)
|
||||||
|
|
|
@ -131,7 +131,7 @@ namespace Microsoft.Extensions.DependencyModel.Tests
|
||||||
// targets
|
// targets
|
||||||
var targets = result.Should().HavePropertyAsObject("targets").Subject;
|
var targets = result.Should().HavePropertyAsObject("targets").Subject;
|
||||||
var target = targets.Should().HavePropertyAsObject("Target").Subject;
|
var target = targets.Should().HavePropertyAsObject("Target").Subject;
|
||||||
var library = target.Should().HavePropertyAsObject("PackageName/1.2.3").Subject;
|
var library = target.Should().HavePropertyAsObject("packagename/1.2.3").Subject;
|
||||||
var dependencies = library.Should().HavePropertyAsObject("dependencies").Subject;
|
var dependencies = library.Should().HavePropertyAsObject("dependencies").Subject;
|
||||||
dependencies.Should().HavePropertyValue("Fruits.Abstract.dll", "2.0.0");
|
dependencies.Should().HavePropertyValue("Fruits.Abstract.dll", "2.0.0");
|
||||||
library.Should().HavePropertyAsObject("compile")
|
library.Should().HavePropertyAsObject("compile")
|
||||||
|
@ -139,7 +139,7 @@ namespace Microsoft.Extensions.DependencyModel.Tests
|
||||||
|
|
||||||
//libraries
|
//libraries
|
||||||
var libraries = result.Should().HavePropertyAsObject("libraries").Subject;
|
var libraries = result.Should().HavePropertyAsObject("libraries").Subject;
|
||||||
library = libraries.Should().HavePropertyAsObject("PackageName/1.2.3").Subject;
|
library = libraries.Should().HavePropertyAsObject("packagename/1.2.3").Subject;
|
||||||
library.Should().HavePropertyValue("sha512", "HASH");
|
library.Should().HavePropertyValue("sha512", "HASH");
|
||||||
library.Should().HavePropertyValue("type", "package");
|
library.Should().HavePropertyValue("type", "package");
|
||||||
library.Should().HavePropertyValue("serviceable", true);
|
library.Should().HavePropertyValue("serviceable", true);
|
||||||
|
@ -178,7 +178,7 @@ namespace Microsoft.Extensions.DependencyModel.Tests
|
||||||
// targets
|
// targets
|
||||||
var targets = result.Should().HavePropertyAsObject("targets").Subject;
|
var targets = result.Should().HavePropertyAsObject("targets").Subject;
|
||||||
var target = targets.Should().HavePropertyAsObject("Target").Subject;
|
var target = targets.Should().HavePropertyAsObject("Target").Subject;
|
||||||
var library = target.Should().HavePropertyAsObject("PackageName/1.2.3").Subject;
|
var library = target.Should().HavePropertyAsObject("packagename/1.2.3").Subject;
|
||||||
var dependencies = library.Should().HavePropertyAsObject("dependencies").Subject;
|
var dependencies = library.Should().HavePropertyAsObject("dependencies").Subject;
|
||||||
dependencies.Should().HavePropertyValue("Fruits.Abstract.dll", "2.0.0");
|
dependencies.Should().HavePropertyValue("Fruits.Abstract.dll", "2.0.0");
|
||||||
|
|
||||||
|
@ -203,7 +203,7 @@ namespace Microsoft.Extensions.DependencyModel.Tests
|
||||||
|
|
||||||
//libraries
|
//libraries
|
||||||
var libraries = result.Should().HavePropertyAsObject("libraries").Subject;
|
var libraries = result.Should().HavePropertyAsObject("libraries").Subject;
|
||||||
library = libraries.Should().HavePropertyAsObject("PackageName/1.2.3").Subject;
|
library = libraries.Should().HavePropertyAsObject("packagename/1.2.3").Subject;
|
||||||
library.Should().HavePropertyValue("sha512", "HASH");
|
library.Should().HavePropertyValue("sha512", "HASH");
|
||||||
library.Should().HavePropertyValue("type", "package");
|
library.Should().HavePropertyValue("type", "package");
|
||||||
library.Should().HavePropertyValue("serviceable", true);
|
library.Should().HavePropertyValue("serviceable", true);
|
||||||
|
@ -256,7 +256,7 @@ namespace Microsoft.Extensions.DependencyModel.Tests
|
||||||
// targets
|
// targets
|
||||||
var targets = result.Should().HavePropertyAsObject("targets").Subject;
|
var targets = result.Should().HavePropertyAsObject("targets").Subject;
|
||||||
var target = targets.Should().HavePropertyAsObject("Target").Subject;
|
var target = targets.Should().HavePropertyAsObject("Target").Subject;
|
||||||
var library = target.Should().HavePropertyAsObject("PackageName/1.2.3").Subject;
|
var library = target.Should().HavePropertyAsObject("packagename/1.2.3").Subject;
|
||||||
var dependencies = library.Should().HavePropertyAsObject("dependencies").Subject;
|
var dependencies = library.Should().HavePropertyAsObject("dependencies").Subject;
|
||||||
dependencies.Should().HavePropertyValue("Fruits.Abstract.dll", "2.0.0");
|
dependencies.Should().HavePropertyValue("Fruits.Abstract.dll", "2.0.0");
|
||||||
|
|
||||||
|
@ -280,7 +280,7 @@ namespace Microsoft.Extensions.DependencyModel.Tests
|
||||||
|
|
||||||
//libraries
|
//libraries
|
||||||
var libraries = result.Should().HavePropertyAsObject("libraries").Subject;
|
var libraries = result.Should().HavePropertyAsObject("libraries").Subject;
|
||||||
library = libraries.Should().HavePropertyAsObject("PackageName/1.2.3").Subject;
|
library = libraries.Should().HavePropertyAsObject("packagename/1.2.3").Subject;
|
||||||
library.Should().HavePropertyValue("sha512", "HASH");
|
library.Should().HavePropertyValue("sha512", "HASH");
|
||||||
library.Should().HavePropertyValue("type", "package");
|
library.Should().HavePropertyValue("type", "package");
|
||||||
library.Should().HavePropertyValue("serviceable", true);
|
library.Should().HavePropertyValue("serviceable", true);
|
||||||
|
@ -317,7 +317,7 @@ namespace Microsoft.Extensions.DependencyModel.Tests
|
||||||
// targets
|
// targets
|
||||||
var targets = result.Should().HavePropertyAsObject("targets").Subject;
|
var targets = result.Should().HavePropertyAsObject("targets").Subject;
|
||||||
var target = targets.Should().HavePropertyAsObject("Target/runtime").Subject;
|
var target = targets.Should().HavePropertyAsObject("Target/runtime").Subject;
|
||||||
var library = target.Should().HavePropertyAsObject("PackageName/1.2.3").Subject;
|
var library = target.Should().HavePropertyAsObject("packagename/1.2.3").Subject;
|
||||||
var dependencies = library.Should().HavePropertyAsObject("dependencies").Subject;
|
var dependencies = library.Should().HavePropertyAsObject("dependencies").Subject;
|
||||||
dependencies.Should().HavePropertyValue("Fruits.Abstract.dll", "2.0.0");
|
dependencies.Should().HavePropertyValue("Fruits.Abstract.dll", "2.0.0");
|
||||||
library.Should().HavePropertyAsObject("runtime")
|
library.Should().HavePropertyAsObject("runtime")
|
||||||
|
@ -327,7 +327,7 @@ namespace Microsoft.Extensions.DependencyModel.Tests
|
||||||
|
|
||||||
//libraries
|
//libraries
|
||||||
var libraries = result.Should().HavePropertyAsObject("libraries").Subject;
|
var libraries = result.Should().HavePropertyAsObject("libraries").Subject;
|
||||||
library = libraries.Should().HavePropertyAsObject("PackageName/1.2.3").Subject;
|
library = libraries.Should().HavePropertyAsObject("packagename/1.2.3").Subject;
|
||||||
library.Should().HavePropertyValue("sha512", "HASH");
|
library.Should().HavePropertyValue("sha512", "HASH");
|
||||||
library.Should().HavePropertyValue("type", "package");
|
library.Should().HavePropertyValue("type", "package");
|
||||||
library.Should().HavePropertyValue("serviceable", true);
|
library.Should().HavePropertyValue("serviceable", true);
|
||||||
|
@ -364,7 +364,7 @@ namespace Microsoft.Extensions.DependencyModel.Tests
|
||||||
// targets
|
// targets
|
||||||
var targets = result.Should().HavePropertyAsObject("targets").Subject;
|
var targets = result.Should().HavePropertyAsObject("targets").Subject;
|
||||||
var target = targets.Should().HavePropertyAsObject("Target").Subject;
|
var target = targets.Should().HavePropertyAsObject("Target").Subject;
|
||||||
var library = target.Should().HavePropertyAsObject("PackageName/1.2.3").Subject;
|
var library = target.Should().HavePropertyAsObject("packagename/1.2.3").Subject;
|
||||||
|
|
||||||
var runtimeTargets = library.Should().HavePropertyAsObject("runtimeTargets").Subject;
|
var runtimeTargets = library.Should().HavePropertyAsObject("runtimeTargets").Subject;
|
||||||
|
|
||||||
|
@ -412,7 +412,7 @@ namespace Microsoft.Extensions.DependencyModel.Tests
|
||||||
|
|
||||||
var targets = result.Should().HavePropertyAsObject("targets").Subject;
|
var targets = result.Should().HavePropertyAsObject("targets").Subject;
|
||||||
var target = targets.Should().HavePropertyAsObject("Target/runtime").Subject;
|
var target = targets.Should().HavePropertyAsObject("Target/runtime").Subject;
|
||||||
var library = target.Should().HavePropertyAsObject("PackageName/1.2.3").Subject;
|
var library = target.Should().HavePropertyAsObject("packagename/1.2.3").Subject;
|
||||||
var resources = library.Should().HavePropertyAsObject("resources").Subject;
|
var resources = library.Should().HavePropertyAsObject("resources").Subject;
|
||||||
var resource = resources.Should().HavePropertyAsObject("en-US/Fruits.resources.dll").Subject;
|
var resource = resources.Should().HavePropertyAsObject("en-US/Fruits.resources.dll").Subject;
|
||||||
resource.Should().HavePropertyValue("locale", "en-US");
|
resource.Should().HavePropertyValue("locale", "en-US");
|
||||||
|
@ -446,7 +446,7 @@ namespace Microsoft.Extensions.DependencyModel.Tests
|
||||||
|
|
||||||
var targets = result.Should().HavePropertyAsObject("targets").Subject;
|
var targets = result.Should().HavePropertyAsObject("targets").Subject;
|
||||||
var target = targets.Should().HavePropertyAsObject("Target").Subject;
|
var target = targets.Should().HavePropertyAsObject("Target").Subject;
|
||||||
var library = target.Should().HavePropertyAsObject("PackageName/1.2.3").Subject;
|
var library = target.Should().HavePropertyAsObject("packagename/1.2.3").Subject;
|
||||||
var resources = library.Should().HavePropertyAsObject("resources").Subject;
|
var resources = library.Should().HavePropertyAsObject("resources").Subject;
|
||||||
var resource = resources.Should().HavePropertyAsObject("en-US/Fruits.resources.dll").Subject;
|
var resource = resources.Should().HavePropertyAsObject("en-US/Fruits.resources.dll").Subject;
|
||||||
resource.Should().HavePropertyValue("locale", "en-US");
|
resource.Should().HavePropertyValue("locale", "en-US");
|
||||||
|
@ -478,7 +478,7 @@ namespace Microsoft.Extensions.DependencyModel.Tests
|
||||||
// targets
|
// targets
|
||||||
var targets = result.Should().HavePropertyAsObject("targets").Subject;
|
var targets = result.Should().HavePropertyAsObject("targets").Subject;
|
||||||
var target = targets.Should().HavePropertyAsObject("Target").Subject;
|
var target = targets.Should().HavePropertyAsObject("Target").Subject;
|
||||||
var library = target.Should().HavePropertyAsObject("PackageName/1.2.3").Subject;
|
var library = target.Should().HavePropertyAsObject("packagename/1.2.3").Subject;
|
||||||
library.Should().HavePropertyValue("compileOnly", true);
|
library.Should().HavePropertyValue("compileOnly", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -93,17 +93,17 @@ namespace Microsoft.Extensions.DependencyModel
|
||||||
private void ValidateRuntimeLibrariesFullClr(CommandResult result, string appname)
|
private void ValidateRuntimeLibrariesFullClr(CommandResult result, string appname)
|
||||||
{
|
{
|
||||||
// entry assembly
|
// entry assembly
|
||||||
result.Should().HaveStdOutContaining($"Runtime {appname}:{appname}");
|
result.Should().HaveStdOutContaining($"Runtime {appname.ToLowerInvariant()}:{appname}");
|
||||||
// project dependency
|
// project dependency
|
||||||
result.Should().HaveStdOutContaining("Runtime DependencyContextValidator:DependencyContextValidator");
|
result.Should().HaveStdOutContaining("Runtime dependencycontextvalidator:DependencyContextValidator");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ValidateCompilationLibrariesFullClr(CommandResult result, string appname)
|
private void ValidateCompilationLibrariesFullClr(CommandResult result, string appname)
|
||||||
{
|
{
|
||||||
// entry assembly
|
// entry assembly
|
||||||
result.Should().HaveStdOutContaining($"Compilation {appname}:{appname}.exe");
|
result.Should().HaveStdOutContaining($"Compilation {appname.ToLowerInvariant()}:{appname}.exe");
|
||||||
// project dependency
|
// project dependency
|
||||||
result.Should().HaveStdOutContaining("Compilation DependencyContextValidator:DependencyContextValidator.dll");
|
result.Should().HaveStdOutContaining("Compilation dependencycontextvalidator:DependencyContextValidator.dll");
|
||||||
// system assembly
|
// system assembly
|
||||||
result.Should().HaveStdOutContaining("Compilation mscorlib:mscorlib.dll");
|
result.Should().HaveStdOutContaining("Compilation mscorlib:mscorlib.dll");
|
||||||
}
|
}
|
||||||
|
@ -112,22 +112,21 @@ namespace Microsoft.Extensions.DependencyModel
|
||||||
private void ValidateRuntimeLibraries(CommandResult result, string appname)
|
private void ValidateRuntimeLibraries(CommandResult result, string appname)
|
||||||
{
|
{
|
||||||
// entry assembly
|
// entry assembly
|
||||||
result.Should().HaveStdOutContaining($"Runtime {appname}:{appname}");
|
result.Should().HaveStdOutContaining($"Runtime {appname.ToLowerInvariant()}:{appname}");
|
||||||
// project dependency
|
// project dependency
|
||||||
result.Should().HaveStdOutContaining("Runtime DependencyContextValidator:DependencyContextValidator");
|
result.Should().HaveStdOutContaining("Runtime dependencycontextvalidator:DependencyContextValidator");
|
||||||
// system assembly
|
// system assembly
|
||||||
result.Should().HaveStdOutContaining("Runtime System.Linq:System.Linq");
|
result.Should().HaveStdOutContainingIgnoreCase("Runtime System.Linq:System.Linq");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ValidateCompilationLibraries(CommandResult result, string appname)
|
private void ValidateCompilationLibraries(CommandResult result, string appname)
|
||||||
{
|
{
|
||||||
// entry assembly
|
// entry assembly
|
||||||
result.Should().HaveStdOutContaining($"Compilation {appname}:{appname}.dll");
|
result.Should().HaveStdOutContaining($"Compilation {appname.ToLowerInvariant()}:{appname}.dll");
|
||||||
// project dependency
|
// project dependency
|
||||||
result.Should().HaveStdOutContaining("Compilation DependencyContextValidator:DependencyContextValidator.dll");
|
result.Should().HaveStdOutContaining("Compilation dependencycontextvalidator:DependencyContextValidator.dll");
|
||||||
// system assembly
|
// system assembly
|
||||||
result.Should().HaveStdOutContaining("Compilation System.Linq:System.Linq.dll");
|
result.Should().HaveStdOutContainingIgnoreCase("Compilation System.Linq:System.Linq.dll");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -278,7 +278,11 @@ namespace Microsoft.DotNet.Tools.Builder.Tests
|
||||||
|
|
||||||
foreach (var library in new[] { Tuple.Create("Microsoft.Data.OData", "5.6.4"), Tuple.Create("TestLibraryWithResources", "1.0.0") })
|
foreach (var library in new[] { Tuple.Create("Microsoft.Data.OData", "5.6.4"), Tuple.Create("TestLibraryWithResources", "1.0.0") })
|
||||||
{
|
{
|
||||||
var resources = depsJson["targets"][".NETCoreApp,Version=v1.0"][library.Item1 + "/" + library.Item2]["resources"];
|
var resources = depsJson
|
||||||
|
["targets"]
|
||||||
|
[".NETCoreApp,Version=v1.0"]
|
||||||
|
[library.Item1.ToLowerInvariant() + "/" + library.Item2.ToLowerInvariant()]
|
||||||
|
["resources"];
|
||||||
|
|
||||||
resources.Should().NotBeNull();
|
resources.Should().NotBeNull();
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue