PR
This commit is contained in:
parent
304127ec0d
commit
1d7cff48d4
19 changed files with 159 additions and 156 deletions
|
@ -17,13 +17,13 @@ namespace Microsoft.Extensions.DependencyModel
|
||||||
|
|
||||||
private static void CheckMetadata(Library library)
|
private static void CheckMetadata(Library library)
|
||||||
{
|
{
|
||||||
if (string.Equals(library.LibraryType, "package", StringComparison.OrdinalIgnoreCase))
|
if (string.Equals(library.Type, "package", StringComparison.OrdinalIgnoreCase))
|
||||||
{
|
{
|
||||||
if (string.IsNullOrWhiteSpace(library.PackageName) ||
|
if (string.IsNullOrWhiteSpace(library.Name) ||
|
||||||
string.IsNullOrWhiteSpace(library.Hash) ||
|
string.IsNullOrWhiteSpace(library.Hash) ||
|
||||||
string.IsNullOrWhiteSpace(library.Version))
|
string.IsNullOrWhiteSpace(library.Version))
|
||||||
{
|
{
|
||||||
Error($"Empty metadata for {library.GetType().ToString()} {library.PackageName}");
|
Error($"Empty metadata for {library.GetType().ToString()} {library.Name}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,8 +9,8 @@ namespace Microsoft.Extensions.DependencyModel
|
||||||
{
|
{
|
||||||
public class CompilationLibrary : Library
|
public class CompilationLibrary : Library
|
||||||
{
|
{
|
||||||
public CompilationLibrary(string libraryType, string packageName, string version, string hash, string[] assemblies, Dependency[] dependencies, bool serviceable)
|
public CompilationLibrary(string type, string name, string version, string hash, string[] assemblies, Dependency[] dependencies, bool serviceable)
|
||||||
: base(libraryType, packageName, version, hash, dependencies, serviceable)
|
: base(type, name, version, hash, dependencies, serviceable)
|
||||||
{
|
{
|
||||||
Assemblies = assemblies;
|
Assemblies = assemblies;
|
||||||
}
|
}
|
||||||
|
@ -30,7 +30,7 @@ namespace Microsoft.Extensions.DependencyModel
|
||||||
var assemblies = new List<string>();
|
var assemblies = new List<string>();
|
||||||
if (!DefaultResolver.TryResolveAssemblyPaths(this, assemblies))
|
if (!DefaultResolver.TryResolveAssemblyPaths(this, assemblies))
|
||||||
{
|
{
|
||||||
throw new InvalidOperationException($"Can not find compilation library location for package '{PackageName}'");
|
throw new InvalidOperationException($"Can not find compilation library location for package '{Name}'");
|
||||||
}
|
}
|
||||||
return assemblies;
|
return assemblies;
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,7 +16,7 @@ namespace Microsoft.Extensions.DependencyModel
|
||||||
|
|
||||||
private static readonly Lazy<DependencyContext> _defaultContext = new Lazy<DependencyContext>(LoadDefault);
|
private static readonly Lazy<DependencyContext> _defaultContext = new Lazy<DependencyContext>(LoadDefault);
|
||||||
|
|
||||||
public DependencyContext(string target,
|
public DependencyContext(string targetFramework,
|
||||||
string runtime,
|
string runtime,
|
||||||
bool isPortable,
|
bool isPortable,
|
||||||
CompilationOptions compilationOptions,
|
CompilationOptions compilationOptions,
|
||||||
|
@ -24,9 +24,9 @@ namespace Microsoft.Extensions.DependencyModel
|
||||||
IEnumerable<RuntimeLibrary> runtimeLibraries,
|
IEnumerable<RuntimeLibrary> runtimeLibraries,
|
||||||
IEnumerable<KeyValuePair<string, string[]>> runtimeGraph)
|
IEnumerable<KeyValuePair<string, string[]>> runtimeGraph)
|
||||||
{
|
{
|
||||||
if (target == null)
|
if (targetFramework == null)
|
||||||
{
|
{
|
||||||
throw new ArgumentNullException(nameof(target));
|
throw new ArgumentNullException(nameof(targetFramework));
|
||||||
}
|
}
|
||||||
if (runtime == null)
|
if (runtime == null)
|
||||||
{
|
{
|
||||||
|
@ -49,7 +49,7 @@ namespace Microsoft.Extensions.DependencyModel
|
||||||
throw new ArgumentNullException(nameof(runtimeGraph));
|
throw new ArgumentNullException(nameof(runtimeGraph));
|
||||||
}
|
}
|
||||||
|
|
||||||
Target = target;
|
TargetFramework = targetFramework;
|
||||||
Runtime = runtime;
|
Runtime = runtime;
|
||||||
IsPortable = isPortable;
|
IsPortable = isPortable;
|
||||||
CompilationOptions = compilationOptions;
|
CompilationOptions = compilationOptions;
|
||||||
|
@ -60,7 +60,7 @@ namespace Microsoft.Extensions.DependencyModel
|
||||||
|
|
||||||
public static DependencyContext Default => _defaultContext.Value;
|
public static DependencyContext Default => _defaultContext.Value;
|
||||||
|
|
||||||
public string Target { get; }
|
public string TargetFramework { get; }
|
||||||
|
|
||||||
public string Runtime { get; }
|
public string Runtime { get; }
|
||||||
|
|
||||||
|
|
|
@ -42,8 +42,8 @@ namespace Microsoft.Extensions.DependencyModel
|
||||||
{
|
{
|
||||||
var identity = packageGroup.Key;
|
var identity = packageGroup.Key;
|
||||||
runtimeLibraries.Add(new RuntimeLibrary(
|
runtimeLibraries.Add(new RuntimeLibrary(
|
||||||
libraryType: identity.Item1,
|
type: identity.Item1,
|
||||||
packageName: identity.Item2,
|
name: identity.Item2,
|
||||||
version: identity.Item3,
|
version: identity.Item3,
|
||||||
hash: identity.Item4,
|
hash: identity.Item4,
|
||||||
assemblies: packageGroup.Select(l => RuntimeAssembly.Create(l.AssetPath)).ToArray(),
|
assemblies: packageGroup.Select(l => RuntimeAssembly.Create(l.AssetPath)).ToArray(),
|
||||||
|
@ -54,7 +54,7 @@ namespace Microsoft.Extensions.DependencyModel
|
||||||
}
|
}
|
||||||
|
|
||||||
return new DependencyContext(
|
return new DependencyContext(
|
||||||
target: string.Empty,
|
targetFramework: string.Empty,
|
||||||
runtime: string.Empty,
|
runtime: string.Empty,
|
||||||
isPortable: false,
|
isPortable: false,
|
||||||
compilationOptions: CompilationOptions.Default,
|
compilationOptions: CompilationOptions.Default,
|
||||||
|
|
|
@ -39,8 +39,8 @@ namespace Microsoft.Extensions.DependencyModel
|
||||||
private JObject WriteRuntimeTargetInfo(DependencyContext context)
|
private JObject WriteRuntimeTargetInfo(DependencyContext context)
|
||||||
{
|
{
|
||||||
var target = context.IsPortable?
|
var target = context.IsPortable?
|
||||||
context.Target :
|
context.TargetFramework :
|
||||||
context.Target + DependencyContextStrings.VersionSeperator + context.Runtime;
|
context.TargetFramework + DependencyContextStrings.VersionSeperator + context.Runtime;
|
||||||
|
|
||||||
return new JObject(
|
return new JObject(
|
||||||
new JProperty(DependencyContextStrings.RuntimeTargetNamePropertyName, target),
|
new JProperty(DependencyContextStrings.RuntimeTargetNamePropertyName, target),
|
||||||
|
@ -51,7 +51,7 @@ namespace Microsoft.Extensions.DependencyModel
|
||||||
private JObject WriteRuntimeGraph(DependencyContext context)
|
private JObject WriteRuntimeGraph(DependencyContext context)
|
||||||
{
|
{
|
||||||
return new JObject(
|
return new JObject(
|
||||||
new JProperty(context.Target,
|
new JProperty(context.TargetFramework,
|
||||||
new JObject(
|
new JObject(
|
||||||
context.RuntimeGraph.Select(g => new JProperty(g.Key, new JArray(g.Value)))
|
context.RuntimeGraph.Select(g => new JProperty(g.Key, new JArray(g.Value)))
|
||||||
)
|
)
|
||||||
|
@ -76,6 +76,7 @@ namespace Microsoft.Extensions.DependencyModel
|
||||||
AddPropertyIfNotNull(o, DependencyContextStrings.PublicSignPropertyName, compilationOptions.PublicSign);
|
AddPropertyIfNotNull(o, DependencyContextStrings.PublicSignPropertyName, compilationOptions.PublicSign);
|
||||||
AddPropertyIfNotNull(o, DependencyContextStrings.EmitEntryPointPropertyName, compilationOptions.EmitEntryPoint);
|
AddPropertyIfNotNull(o, DependencyContextStrings.EmitEntryPointPropertyName, compilationOptions.EmitEntryPoint);
|
||||||
AddPropertyIfNotNull(o, DependencyContextStrings.GenerateXmlDocumentationPropertyName, compilationOptions.GenerateXmlDocumentation);
|
AddPropertyIfNotNull(o, DependencyContextStrings.GenerateXmlDocumentationPropertyName, compilationOptions.GenerateXmlDocumentation);
|
||||||
|
AddPropertyIfNotNull(o, DependencyContextStrings.DebugTypePropertyName, compilationOptions.DebugType);
|
||||||
return o;
|
return o;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -92,13 +93,13 @@ namespace Microsoft.Extensions.DependencyModel
|
||||||
if (context.IsPortable)
|
if (context.IsPortable)
|
||||||
{
|
{
|
||||||
return new JObject(
|
return new JObject(
|
||||||
new JProperty(context.Target, WritePortableTarget(context.RuntimeLibraries, context.CompileLibraries))
|
new JProperty(context.TargetFramework, WritePortableTarget(context.RuntimeLibraries, context.CompileLibraries))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return new JObject(
|
return new JObject(
|
||||||
new JProperty(context.Target, WriteTarget(context.CompileLibraries)),
|
new JProperty(context.TargetFramework, WriteTarget(context.CompileLibraries)),
|
||||||
new JProperty(context.Target + DependencyContextStrings.VersionSeperator + context.Runtime,
|
new JProperty(context.TargetFramework + DependencyContextStrings.VersionSeperator + context.Runtime,
|
||||||
WriteTarget(context.RuntimeLibraries))
|
WriteTarget(context.RuntimeLibraries))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -107,13 +108,13 @@ namespace Microsoft.Extensions.DependencyModel
|
||||||
{
|
{
|
||||||
return new JObject(
|
return new JObject(
|
||||||
libraries.Select(library =>
|
libraries.Select(library =>
|
||||||
new JProperty(library.PackageName + DependencyContextStrings.VersionSeperator + library.Version, WriteTargetLibrary(library))));
|
new JProperty(library.Name + DependencyContextStrings.VersionSeperator + library.Version, WriteTargetLibrary(library))));
|
||||||
}
|
}
|
||||||
|
|
||||||
private JObject WritePortableTarget(IReadOnlyList<RuntimeLibrary> runtimeLibraries, IReadOnlyList<CompilationLibrary> compilationLibraries)
|
private JObject WritePortableTarget(IReadOnlyList<RuntimeLibrary> runtimeLibraries, IReadOnlyList<CompilationLibrary> compilationLibraries)
|
||||||
{
|
{
|
||||||
var runtimeLookup = runtimeLibraries.ToDictionary(l => l.PackageName);
|
var runtimeLookup = runtimeLibraries.ToDictionary(l => l.Name);
|
||||||
var compileLookup = compilationLibraries.ToDictionary(l => l.PackageName);
|
var compileLookup = compilationLibraries.ToDictionary(l => l.Name);
|
||||||
|
|
||||||
var targetObject = new JObject();
|
var targetObject = new JObject();
|
||||||
|
|
||||||
|
@ -130,12 +131,12 @@ namespace Microsoft.Extensions.DependencyModel
|
||||||
Debug.Assert(compilationLibrary.Serviceable == runtimeLibrary.Serviceable);
|
Debug.Assert(compilationLibrary.Serviceable == runtimeLibrary.Serviceable);
|
||||||
Debug.Assert(compilationLibrary.Version == runtimeLibrary.Version);
|
Debug.Assert(compilationLibrary.Version == runtimeLibrary.Version);
|
||||||
Debug.Assert(compilationLibrary.Hash == runtimeLibrary.Hash);
|
Debug.Assert(compilationLibrary.Hash == runtimeLibrary.Hash);
|
||||||
Debug.Assert(compilationLibrary.LibraryType == runtimeLibrary.LibraryType);
|
Debug.Assert(compilationLibrary.Type == runtimeLibrary.Type);
|
||||||
}
|
}
|
||||||
|
|
||||||
var library = (Library)compilationLibrary ?? (Library)runtimeLibrary;
|
var library = (Library)compilationLibrary ?? (Library)runtimeLibrary;
|
||||||
targetObject.Add(
|
targetObject.Add(
|
||||||
new JProperty(library.PackageName + DependencyContextStrings.VersionSeperator + library.Version,
|
new JProperty(library.Name + DependencyContextStrings.VersionSeperator + library.Version,
|
||||||
WritePortableTargetLibrary(runtimeLibrary, compilationLibrary)
|
WritePortableTargetLibrary(runtimeLibrary, compilationLibrary)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
@ -187,11 +188,11 @@ namespace Microsoft.Extensions.DependencyModel
|
||||||
libraryObject.Add(new JProperty(DependencyContextStrings.RuntimeAssembliesKey,
|
libraryObject.Add(new JProperty(DependencyContextStrings.RuntimeAssembliesKey,
|
||||||
WriteAssemblies(runtimeLibrary.Assemblies.Select(a => a.Path)))
|
WriteAssemblies(runtimeLibrary.Assemblies.Select(a => a.Path)))
|
||||||
);
|
);
|
||||||
if (runtimeLibrary.SubTargets.Any())
|
if (runtimeLibrary.RuntimeTargets.Any())
|
||||||
{
|
{
|
||||||
libraryObject.Add(new JProperty(
|
libraryObject.Add(new JProperty(
|
||||||
DependencyContextStrings.RuntimeTargetsPropertyName,
|
DependencyContextStrings.RuntimeTargetsPropertyName,
|
||||||
new JObject(runtimeLibrary.SubTargets.SelectMany(WriteRuntimeTarget)))
|
new JObject(runtimeLibrary.RuntimeTargets.SelectMany(WriteRuntimeTarget)))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -256,7 +257,7 @@ 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.PackageName + DependencyContextStrings.VersionSeperator + library.Version);
|
.GroupBy(library => library.Name + DependencyContextStrings.VersionSeperator + library.Version);
|
||||||
|
|
||||||
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()))));
|
||||||
}
|
}
|
||||||
|
@ -264,7 +265,7 @@ namespace Microsoft.Extensions.DependencyModel
|
||||||
private JObject WriteLibrary(Library library)
|
private JObject WriteLibrary(Library library)
|
||||||
{
|
{
|
||||||
return new JObject(
|
return new JObject(
|
||||||
new JProperty(DependencyContextStrings.TypePropertyName, library.LibraryType),
|
new JProperty(DependencyContextStrings.TypePropertyName, library.Type),
|
||||||
new JProperty(DependencyContextStrings.ServiceablePropertyName, library.Serviceable),
|
new JProperty(DependencyContextStrings.ServiceablePropertyName, library.Serviceable),
|
||||||
new JProperty(DependencyContextStrings.Sha512PropertyName, library.Hash)
|
new JProperty(DependencyContextStrings.Sha512PropertyName, library.Hash)
|
||||||
);
|
);
|
||||||
|
|
|
@ -7,19 +7,19 @@ namespace Microsoft.Extensions.DependencyModel
|
||||||
{
|
{
|
||||||
public class Library
|
public class Library
|
||||||
{
|
{
|
||||||
public Library(string libraryType, string packageName, string version, string hash, Dependency[] dependencies, bool serviceable)
|
public Library(string type, string name, string version, string hash, Dependency[] dependencies, bool serviceable)
|
||||||
{
|
{
|
||||||
LibraryType = libraryType;
|
Type = type;
|
||||||
PackageName = packageName;
|
Name = name;
|
||||||
Version = version;
|
Version = version;
|
||||||
Hash = hash;
|
Hash = hash;
|
||||||
Dependencies = dependencies;
|
Dependencies = dependencies;
|
||||||
Serviceable = serviceable;
|
Serviceable = serviceable;
|
||||||
}
|
}
|
||||||
|
|
||||||
public string LibraryType { get; }
|
public string Type { get; }
|
||||||
|
|
||||||
public string PackageName { get; }
|
public string Name { get; }
|
||||||
|
|
||||||
public string Version { get; }
|
public string Version { get; }
|
||||||
|
|
||||||
|
|
|
@ -37,11 +37,11 @@ namespace Microsoft.Extensions.DependencyModel.Resolution
|
||||||
|
|
||||||
public bool TryResolveAssemblyPaths(CompilationLibrary library, List<string> assemblies)
|
public bool TryResolveAssemblyPaths(CompilationLibrary library, List<string> assemblies)
|
||||||
{
|
{
|
||||||
var isProject = string.Equals(library.LibraryType, "project", StringComparison.OrdinalIgnoreCase);
|
var isProject = string.Equals(library.Type, "project", StringComparison.OrdinalIgnoreCase);
|
||||||
|
|
||||||
if (!isProject &&
|
if (!isProject &&
|
||||||
!string.Equals(library.LibraryType, "package", StringComparison.OrdinalIgnoreCase) &&
|
!string.Equals(library.Type, "package", StringComparison.OrdinalIgnoreCase) &&
|
||||||
!string.Equals(library.LibraryType, "referenceassembly", StringComparison.OrdinalIgnoreCase))
|
!string.Equals(library.Type, "referenceassembly", StringComparison.OrdinalIgnoreCase))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,7 +36,7 @@ namespace Microsoft.Extensions.DependencyModel.Resolution
|
||||||
|
|
||||||
public bool TryResolveAssemblyPaths(CompilationLibrary library, List<string> assemblies)
|
public bool TryResolveAssemblyPaths(CompilationLibrary library, List<string> assemblies)
|
||||||
{
|
{
|
||||||
if (!string.Equals(library.LibraryType, "package", StringComparison.OrdinalIgnoreCase))
|
if (!string.Equals(library.Type, "package", StringComparison.OrdinalIgnoreCase))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -46,14 +46,14 @@ namespace Microsoft.Extensions.DependencyModel.Resolution
|
||||||
var hashSplitterPos = library.Hash.IndexOf('-');
|
var hashSplitterPos = library.Hash.IndexOf('-');
|
||||||
if (hashSplitterPos <= 0 || hashSplitterPos == library.Hash.Length - 1)
|
if (hashSplitterPos <= 0 || hashSplitterPos == library.Hash.Length - 1)
|
||||||
{
|
{
|
||||||
throw new InvalidOperationException($"Invalid hash entry '{library.Hash}' for package '{library.PackageName}'");
|
throw new InvalidOperationException($"Invalid hash entry '{library.Hash}' for package '{library.Name}'");
|
||||||
}
|
}
|
||||||
|
|
||||||
string packagePath;
|
string packagePath;
|
||||||
if (ResolverUtils.TryResolvePackagePath(_fileSystem, library, _packageCacheDirectory, out packagePath))
|
if (ResolverUtils.TryResolvePackagePath(_fileSystem, library, _packageCacheDirectory, out packagePath))
|
||||||
{
|
{
|
||||||
var hashAlgorithm = library.Hash.Substring(0, hashSplitterPos);
|
var hashAlgorithm = library.Hash.Substring(0, hashSplitterPos);
|
||||||
var cacheHashPath = Path.Combine(packagePath, $"{library.PackageName}.{library.Version}.nupkg.{hashAlgorithm}");
|
var cacheHashPath = Path.Combine(packagePath, $"{library.Name}.{library.Version}.nupkg.{hashAlgorithm}");
|
||||||
|
|
||||||
if (_fileSystem.File.Exists(cacheHashPath) &&
|
if (_fileSystem.File.Exists(cacheHashPath) &&
|
||||||
_fileSystem.File.ReadAllText(cacheHashPath) == library.Hash.Substring(hashSplitterPos + 1))
|
_fileSystem.File.ReadAllText(cacheHashPath) == library.Hash.Substring(hashSplitterPos + 1))
|
||||||
|
|
|
@ -65,7 +65,7 @@ namespace Microsoft.Extensions.DependencyModel.Resolution
|
||||||
public bool TryResolveAssemblyPaths(CompilationLibrary library, List<string> assemblies)
|
public bool TryResolveAssemblyPaths(CompilationLibrary library, List<string> assemblies)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(_nugetPackageDirectory) ||
|
if (string.IsNullOrEmpty(_nugetPackageDirectory) ||
|
||||||
!string.Equals(library.LibraryType, "package", StringComparison.OrdinalIgnoreCase))
|
!string.Equals(library.Type, "package", StringComparison.OrdinalIgnoreCase))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,7 +41,7 @@ namespace Microsoft.Extensions.DependencyModel.Resolution
|
||||||
|
|
||||||
public bool TryResolveAssemblyPaths(CompilationLibrary library, List<string> assemblies)
|
public bool TryResolveAssemblyPaths(CompilationLibrary library, List<string> assemblies)
|
||||||
{
|
{
|
||||||
if (!string.Equals(library.LibraryType, "referenceassembly", StringComparison.OrdinalIgnoreCase))
|
if (!string.Equals(library.Type, "referenceassembly", StringComparison.OrdinalIgnoreCase))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -50,7 +50,7 @@ namespace Microsoft.Extensions.DependencyModel.Resolution
|
||||||
string fullName;
|
string fullName;
|
||||||
if (!TryResolveReferenceAssembly(assembly, out fullName))
|
if (!TryResolveReferenceAssembly(assembly, out fullName))
|
||||||
{
|
{
|
||||||
throw new InvalidOperationException($"Can not find reference assembly '{assembly}' file for package {library.PackageName}");
|
throw new InvalidOperationException($"Can not find reference assembly '{assembly}' file for package {library.Name}");
|
||||||
}
|
}
|
||||||
assemblies.Add(fullName);
|
assemblies.Add(fullName);
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,7 @@ namespace Microsoft.Extensions.DependencyModel.Resolution
|
||||||
{
|
{
|
||||||
internal static bool TryResolvePackagePath(IFileSystem fileSystem, CompilationLibrary library, string basePath, out string packagePath)
|
internal static bool TryResolvePackagePath(IFileSystem fileSystem, CompilationLibrary library, string basePath, out string packagePath)
|
||||||
{
|
{
|
||||||
packagePath = Path.Combine(basePath, library.PackageName, library.Version);
|
packagePath = Path.Combine(basePath, library.Name, library.Version);
|
||||||
if (fileSystem.Directory.Exists(packagePath))
|
if (fileSystem.Directory.Exists(packagePath))
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
|
@ -27,7 +27,7 @@ namespace Microsoft.Extensions.DependencyModel.Resolution
|
||||||
string fullName;
|
string fullName;
|
||||||
if (!TryResolveAssemblyFile(fileSystem, basePath, assembly, out fullName))
|
if (!TryResolveAssemblyFile(fileSystem, basePath, assembly, out fullName))
|
||||||
{
|
{
|
||||||
throw new InvalidOperationException($"Can not find assembly file for package {library.PackageName} at '{fullName}'");
|
throw new InvalidOperationException($"Can not find assembly file for package {library.Name} at '{fullName}'");
|
||||||
}
|
}
|
||||||
yield return fullName;
|
yield return fullName;
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,22 +9,22 @@ namespace Microsoft.Extensions.DependencyModel
|
||||||
public class RuntimeLibrary : Library
|
public class RuntimeLibrary : Library
|
||||||
{
|
{
|
||||||
public RuntimeLibrary(
|
public RuntimeLibrary(
|
||||||
string libraryType,
|
string type,
|
||||||
string packageName,
|
string name,
|
||||||
string version,
|
string version,
|
||||||
string hash,
|
string hash,
|
||||||
RuntimeAssembly[] assemblies,
|
RuntimeAssembly[] assemblies,
|
||||||
RuntimeTarget[] subTargets,
|
RuntimeTarget[] subTargets,
|
||||||
Dependency[] dependencies,
|
Dependency[] dependencies,
|
||||||
bool serviceable)
|
bool serviceable)
|
||||||
: base(libraryType, packageName, version, hash, dependencies, serviceable)
|
: base(type, name, version, hash, dependencies, serviceable)
|
||||||
{
|
{
|
||||||
Assemblies = assemblies;
|
Assemblies = assemblies;
|
||||||
SubTargets = subTargets;
|
RuntimeTargets = subTargets;
|
||||||
}
|
}
|
||||||
|
|
||||||
public IReadOnlyList<RuntimeAssembly> Assemblies { get; }
|
public IReadOnlyList<RuntimeAssembly> Assemblies { get; }
|
||||||
|
|
||||||
public IReadOnlyList<RuntimeTarget> SubTargets { get; }
|
public IReadOnlyList<RuntimeTarget> RuntimeTargets { get; }
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -68,87 +68,12 @@ namespace Microsoft.Extensions.DependencyModel.Tests
|
||||||
context.CompilationOptions.Platform.Should().Be("Platform");
|
context.CompilationOptions.Platform.Should().Be("Platform");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private LibraryExport Export(
|
|
||||||
LibraryDescription description,
|
|
||||||
IEnumerable<LibraryAsset> compilationAssemblies = null,
|
|
||||||
IEnumerable<LibraryAsset> runtimeAssemblies = null)
|
|
||||||
{
|
|
||||||
return new LibraryExport(
|
|
||||||
description,
|
|
||||||
compilationAssemblies ?? Enumerable.Empty<LibraryAsset>(),
|
|
||||||
Enumerable.Empty<LibraryAsset>(),
|
|
||||||
runtimeAssemblies ?? Enumerable.Empty<LibraryAsset>(),
|
|
||||||
Enumerable.Empty<LibraryAsset>(),
|
|
||||||
Enumerable.Empty<LibraryAsset>(),
|
|
||||||
Enumerable.Empty<LibraryAsset>(),
|
|
||||||
Enumerable.Empty<AnalyzerReference>()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
private PackageDescription PackageDescription(
|
|
||||||
string name = null,
|
|
||||||
NuGetVersion version = null,
|
|
||||||
string hash = null,
|
|
||||||
IEnumerable<LibraryRange> dependencies = null,
|
|
||||||
bool? servicable = null)
|
|
||||||
{
|
|
||||||
return new PackageDescription(
|
|
||||||
"PATH",
|
|
||||||
new LockFilePackageLibrary()
|
|
||||||
{
|
|
||||||
Files = new string[] { },
|
|
||||||
IsServiceable = servicable ?? false,
|
|
||||||
Name = name ?? _defaultName,
|
|
||||||
Version = version ?? _defaultVersion,
|
|
||||||
Sha512 = hash ?? _defaultHash
|
|
||||||
},
|
|
||||||
new LockFileTargetLibrary(),
|
|
||||||
dependencies ?? Enumerable.Empty<LibraryRange>(),
|
|
||||||
true);
|
|
||||||
}
|
|
||||||
|
|
||||||
private ProjectDescription ProjectDescription(
|
|
||||||
string name = null,
|
|
||||||
NuGetVersion version = null,
|
|
||||||
IEnumerable<LibraryRange> dependencies = null)
|
|
||||||
{
|
|
||||||
return new ProjectDescription(
|
|
||||||
new LibraryRange(
|
|
||||||
name ?? _defaultName,
|
|
||||||
new VersionRange(version ?? _defaultVersion),
|
|
||||||
LibraryType.Project,
|
|
||||||
LibraryDependencyType.Default
|
|
||||||
),
|
|
||||||
new Project(),
|
|
||||||
dependencies ?? Enumerable.Empty<LibraryRange>(),
|
|
||||||
new TargetFrameworkInformation(),
|
|
||||||
true);
|
|
||||||
}
|
|
||||||
|
|
||||||
private LibraryDescription ReferenceAssemblyDescription(
|
|
||||||
string name = null,
|
|
||||||
NuGetVersion version = null)
|
|
||||||
{
|
|
||||||
return new LibraryDescription(
|
|
||||||
new LibraryIdentity(
|
|
||||||
name ?? _defaultName,
|
|
||||||
version ?? _defaultVersion,
|
|
||||||
LibraryType.ReferenceAssembly),
|
|
||||||
string.Empty, // Framework assemblies don't have hashes
|
|
||||||
"PATH",
|
|
||||||
Enumerable.Empty<LibraryRange>(),
|
|
||||||
_defaultFramework,
|
|
||||||
true,
|
|
||||||
true);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void FillsRuntimeAndTarget()
|
public void FillsRuntimeAndTarget()
|
||||||
{
|
{
|
||||||
var context = Build(target: new NuGetFramework("SomeFramework",new Version(1,2)), runtime: "win8-32");
|
var context = Build(target: new NuGetFramework("SomeFramework",new Version(1,2)), runtime: "win8-x86");
|
||||||
context.Runtime.Should().Be("win8-32");
|
context.Runtime.Should().Be("win8-x86");
|
||||||
context.Target.Should().Be("SomeFramework,Version=v1.2");
|
context.TargetFramework.Should().Be("SomeFramework,Version=v1.2");
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
|
@ -194,16 +119,16 @@ namespace Microsoft.Extensions.DependencyModel.Tests
|
||||||
|
|
||||||
context.RuntimeLibraries.Should().HaveCount(2);
|
context.RuntimeLibraries.Should().HaveCount(2);
|
||||||
|
|
||||||
var lib = context.RuntimeLibraries.Should().Contain(l => l.PackageName == "Pack.Age").Subject;
|
var lib = context.RuntimeLibraries.Should().Contain(l => l.Name == "Pack.Age").Subject;
|
||||||
lib.LibraryType.Should().Be("package");
|
lib.Type.Should().Be("package");
|
||||||
lib.Serviceable.Should().BeTrue();
|
lib.Serviceable.Should().BeTrue();
|
||||||
lib.Hash.Should().Be("sha512-Hash");
|
lib.Hash.Should().Be("sha512-Hash");
|
||||||
lib.Version.Should().Be("1.2.3");
|
lib.Version.Should().Be("1.2.3");
|
||||||
lib.Dependencies.Should().OnlyContain(l => l.Name == "System.Collections" && l.Version == "3.3.3");
|
lib.Dependencies.Should().OnlyContain(l => l.Name == "System.Collections" && l.Version == "3.3.3");
|
||||||
lib.Assemblies.Should().OnlyContain(l => l.Path == "lib/Pack.Age.dll");
|
lib.Assemblies.Should().OnlyContain(l => l.Path == "lib/Pack.Age.dll");
|
||||||
|
|
||||||
var asm = context.RuntimeLibraries.Should().Contain(l => l.PackageName == "System.Collections").Subject;
|
var asm = context.RuntimeLibraries.Should().Contain(l => l.Name == "System.Collections").Subject;
|
||||||
asm.LibraryType.Should().Be("referenceassembly");
|
asm.Type.Should().Be("referenceassembly");
|
||||||
asm.Version.Should().Be("3.3.3");
|
asm.Version.Should().Be("3.3.3");
|
||||||
asm.Hash.Should().BeEmpty();
|
asm.Hash.Should().BeEmpty();
|
||||||
asm.Dependencies.Should().BeEmpty();
|
asm.Dependencies.Should().BeEmpty();
|
||||||
|
@ -242,16 +167,16 @@ namespace Microsoft.Extensions.DependencyModel.Tests
|
||||||
|
|
||||||
context.CompileLibraries.Should().HaveCount(2);
|
context.CompileLibraries.Should().HaveCount(2);
|
||||||
|
|
||||||
var lib = context.CompileLibraries.Should().Contain(l => l.PackageName == "Pack.Age").Subject;
|
var lib = context.CompileLibraries.Should().Contain(l => l.Name == "Pack.Age").Subject;
|
||||||
lib.LibraryType.Should().Be("package");
|
lib.Type.Should().Be("package");
|
||||||
lib.Serviceable.Should().BeTrue();
|
lib.Serviceable.Should().BeTrue();
|
||||||
lib.Hash.Should().Be("sha512-Hash");
|
lib.Hash.Should().Be("sha512-Hash");
|
||||||
lib.Version.Should().Be("1.2.3");
|
lib.Version.Should().Be("1.2.3");
|
||||||
lib.Dependencies.Should().OnlyContain(l => l.Name == "System.Collections" && l.Version == "3.3.3");
|
lib.Dependencies.Should().OnlyContain(l => l.Name == "System.Collections" && l.Version == "3.3.3");
|
||||||
lib.Assemblies.Should().OnlyContain(a => a == "lib/Pack.Age.dll");
|
lib.Assemblies.Should().OnlyContain(a => a == "lib/Pack.Age.dll");
|
||||||
|
|
||||||
var asm = context.CompileLibraries.Should().Contain(l => l.PackageName == "System.Collections").Subject;
|
var asm = context.CompileLibraries.Should().Contain(l => l.Name == "System.Collections").Subject;
|
||||||
asm.LibraryType.Should().Be("referenceassembly");
|
asm.Type.Should().Be("referenceassembly");
|
||||||
asm.Version.Should().Be("3.3.3");
|
asm.Version.Should().Be("3.3.3");
|
||||||
asm.Hash.Should().BeEmpty();
|
asm.Hash.Should().BeEmpty();
|
||||||
asm.Dependencies.Should().BeEmpty();
|
asm.Dependencies.Should().BeEmpty();
|
||||||
|
@ -271,7 +196,7 @@ namespace Microsoft.Extensions.DependencyModel.Tests
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
var asm = context.CompileLibraries.Should().Contain(l => l.PackageName == "System.Collections").Subject;
|
var asm = context.CompileLibraries.Should().Contain(l => l.Name == "System.Collections").Subject;
|
||||||
asm.Assemblies.Should().OnlyContain(a => a == Path.Combine("sub", "System.Collections.dll"));
|
asm.Assemblies.Should().OnlyContain(a => a == Path.Combine("sub", "System.Collections.dll"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -293,9 +218,85 @@ namespace Microsoft.Extensions.DependencyModel.Tests
|
||||||
version: new NuGetVersion(3, 3, 3)))
|
version: new NuGetVersion(3, 3, 3)))
|
||||||
});
|
});
|
||||||
|
|
||||||
var lib = context.CompileLibraries.Should().Contain(l => l.PackageName == "Pack.Age").Subject;
|
var lib = context.CompileLibraries.Should().Contain(l => l.Name == "Pack.Age").Subject;
|
||||||
lib.Dependencies.Should().BeEmpty();
|
lib.Dependencies.Should().BeEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private LibraryExport Export(
|
||||||
|
LibraryDescription description,
|
||||||
|
IEnumerable<LibraryAsset> compilationAssemblies = null,
|
||||||
|
IEnumerable<LibraryAsset> runtimeAssemblies = null)
|
||||||
|
{
|
||||||
|
return new LibraryExport(
|
||||||
|
description,
|
||||||
|
compilationAssemblies ?? Enumerable.Empty<LibraryAsset>(),
|
||||||
|
Enumerable.Empty<LibraryAsset>(),
|
||||||
|
runtimeAssemblies ?? Enumerable.Empty<LibraryAsset>(),
|
||||||
|
Enumerable.Empty<LibraryAsset>(),
|
||||||
|
Enumerable.Empty<LibraryAsset>(),
|
||||||
|
Enumerable.Empty<LibraryAsset>(),
|
||||||
|
Enumerable.Empty<AnalyzerReference>()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
private PackageDescription PackageDescription(
|
||||||
|
string name = null,
|
||||||
|
NuGetVersion version = null,
|
||||||
|
string hash = null,
|
||||||
|
IEnumerable<LibraryRange> dependencies = null,
|
||||||
|
bool? servicable = null)
|
||||||
|
{
|
||||||
|
return new PackageDescription(
|
||||||
|
"PATH",
|
||||||
|
new LockFilePackageLibrary()
|
||||||
|
{
|
||||||
|
Files = new string[] { },
|
||||||
|
IsServiceable = servicable ?? false,
|
||||||
|
Name = name ?? _defaultName,
|
||||||
|
Version = version ?? _defaultVersion,
|
||||||
|
Sha512 = hash ?? _defaultHash
|
||||||
|
},
|
||||||
|
new LockFileTargetLibrary(),
|
||||||
|
dependencies ?? Enumerable.Empty<LibraryRange>(),
|
||||||
|
true,
|
||||||
|
true);
|
||||||
|
}
|
||||||
|
|
||||||
|
private ProjectDescription ProjectDescription(
|
||||||
|
string name = null,
|
||||||
|
NuGetVersion version = null,
|
||||||
|
IEnumerable<LibraryRange> dependencies = null)
|
||||||
|
{
|
||||||
|
return new ProjectDescription(
|
||||||
|
new LibraryRange(
|
||||||
|
name ?? _defaultName,
|
||||||
|
new VersionRange(version ?? _defaultVersion),
|
||||||
|
LibraryType.Project,
|
||||||
|
LibraryDependencyType.Default
|
||||||
|
),
|
||||||
|
new Project(),
|
||||||
|
dependencies ?? Enumerable.Empty<LibraryRange>(),
|
||||||
|
new TargetFrameworkInformation(),
|
||||||
|
true);
|
||||||
|
}
|
||||||
|
|
||||||
|
private LibraryDescription ReferenceAssemblyDescription(
|
||||||
|
string name = null,
|
||||||
|
NuGetVersion version = null)
|
||||||
|
{
|
||||||
|
return new LibraryDescription(
|
||||||
|
new LibraryIdentity(
|
||||||
|
name ?? _defaultName,
|
||||||
|
version ?? _defaultVersion,
|
||||||
|
LibraryType.ReferenceAssembly),
|
||||||
|
string.Empty, // Framework assemblies don't have hashes
|
||||||
|
"PATH",
|
||||||
|
Enumerable.Empty<LibraryRange>(),
|
||||||
|
_defaultFramework,
|
||||||
|
true,
|
||||||
|
true);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,8 +32,8 @@ namespace Microsoft.Extensions.DependencyModel.Tests
|
||||||
");
|
");
|
||||||
context.RuntimeLibraries.Should().HaveCount(1);
|
context.RuntimeLibraries.Should().HaveCount(1);
|
||||||
var library = context.RuntimeLibraries.Single();
|
var library = context.RuntimeLibraries.Single();
|
||||||
library.LibraryType.Should().Be("Package");
|
library.Type.Should().Be("Package");
|
||||||
library.PackageName.Should().Be("runtime.any.System.AppContext");
|
library.Name.Should().Be("runtime.any.System.AppContext");
|
||||||
library.Version.Should().Be("4.1.0-rc2-23811");
|
library.Version.Should().Be("4.1.0-rc2-23811");
|
||||||
library.Hash.Should().Be("sha512-1");
|
library.Hash.Should().Be("sha512-1");
|
||||||
library.Assemblies.Should().HaveCount(2).And
|
library.Assemblies.Should().HaveCount(2).And
|
||||||
|
|
|
@ -34,7 +34,7 @@ namespace Microsoft.Extensions.DependencyModel.Tests
|
||||||
}
|
}
|
||||||
}");
|
}");
|
||||||
context.IsPortable.Should().BeFalse();
|
context.IsPortable.Should().BeFalse();
|
||||||
context.Target.Should().Be(".NETStandardApp,Version=v1.5");
|
context.TargetFramework.Should().Be(".NETStandardApp,Version=v1.5");
|
||||||
context.Runtime.Should().Be("osx.10.10-x64");
|
context.Runtime.Should().Be("osx.10.10-x64");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -56,7 +56,7 @@ namespace Microsoft.Extensions.DependencyModel.Tests
|
||||||
"".NETStandardApp,Version=v1.5"": {}
|
"".NETStandardApp,Version=v1.5"": {}
|
||||||
}
|
}
|
||||||
}");
|
}");
|
||||||
context.Target.Should().Be(".NETStandardApp,Version=v1.5");
|
context.TargetFramework.Should().Be(".NETStandardApp,Version=v1.5");
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
|
@ -119,16 +119,16 @@ namespace Microsoft.Extensions.DependencyModel.Tests
|
||||||
}
|
}
|
||||||
}");
|
}");
|
||||||
context.CompileLibraries.Should().HaveCount(2);
|
context.CompileLibraries.Should().HaveCount(2);
|
||||||
var project = context.CompileLibraries.Should().Contain(l => l.PackageName == "MyApp").Subject;
|
var project = context.CompileLibraries.Should().Contain(l => l.Name == "MyApp").Subject;
|
||||||
project.Version.Should().Be("1.0.1");
|
project.Version.Should().Be("1.0.1");
|
||||||
project.Assemblies.Should().BeEquivalentTo("MyApp.dll");
|
project.Assemblies.Should().BeEquivalentTo("MyApp.dll");
|
||||||
project.LibraryType.Should().Be("project");
|
project.Type.Should().Be("project");
|
||||||
|
|
||||||
var package = context.CompileLibraries.Should().Contain(l => l.PackageName == "System.Banana").Subject;
|
var package = context.CompileLibraries.Should().Contain(l => l.Name == "System.Banana").Subject;
|
||||||
package.Version.Should().Be("1.0.0");
|
package.Version.Should().Be("1.0.0");
|
||||||
package.Assemblies.Should().BeEquivalentTo("ref/dotnet5.4/System.Banana.dll");
|
package.Assemblies.Should().BeEquivalentTo("ref/dotnet5.4/System.Banana.dll");
|
||||||
package.Hash.Should().Be("HASH-System.Banana");
|
package.Hash.Should().Be("HASH-System.Banana");
|
||||||
package.LibraryType.Should().Be("package");
|
package.Type.Should().Be("package");
|
||||||
package.Serviceable.Should().Be(false);
|
package.Serviceable.Should().Be(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -178,20 +178,20 @@ namespace Microsoft.Extensions.DependencyModel.Tests
|
||||||
}
|
}
|
||||||
}");
|
}");
|
||||||
context.CompileLibraries.Should().HaveCount(2);
|
context.CompileLibraries.Should().HaveCount(2);
|
||||||
var project = context.RuntimeLibraries.Should().Contain(l => l.PackageName == "MyApp").Subject;
|
var project = context.RuntimeLibraries.Should().Contain(l => l.Name == "MyApp").Subject;
|
||||||
project.Version.Should().Be("1.0.1");
|
project.Version.Should().Be("1.0.1");
|
||||||
project.Assemblies.Should().Contain(a => a.Path == "MyApp.dll");
|
project.Assemblies.Should().Contain(a => a.Path == "MyApp.dll");
|
||||||
project.LibraryType.Should().Be("project");
|
project.Type.Should().Be("project");
|
||||||
|
|
||||||
|
|
||||||
var package = context.RuntimeLibraries.Should().Contain(l => l.PackageName == "System.Banana").Subject;
|
var package = context.RuntimeLibraries.Should().Contain(l => l.Name == "System.Banana").Subject;
|
||||||
package.Version.Should().Be("1.0.0");
|
package.Version.Should().Be("1.0.0");
|
||||||
package.Hash.Should().Be("HASH-System.Banana");
|
package.Hash.Should().Be("HASH-System.Banana");
|
||||||
package.LibraryType.Should().Be("package");
|
package.Type.Should().Be("package");
|
||||||
package.Serviceable.Should().Be(false);
|
package.Serviceable.Should().Be(false);
|
||||||
package.Assemblies.Should().Contain(a => a.Path == "lib/dotnet5.4/System.Banana.dll");
|
package.Assemblies.Should().Contain(a => a.Path == "lib/dotnet5.4/System.Banana.dll");
|
||||||
|
|
||||||
var target = package.SubTargets.Should().Contain(t => t.Runtime == "win7-x64").Subject;
|
var target = package.RuntimeTargets.Should().Contain(t => t.Runtime == "win7-x64").Subject;
|
||||||
target.Assemblies.Should().Contain(a => a.Path == "lib/win7/System.Banana.dll");
|
target.Assemblies.Should().Contain(a => a.Path == "lib/win7/System.Banana.dll");
|
||||||
target.NativeLibraries.Should().Contain("lib/win7/Banana.dll");
|
target.NativeLibraries.Should().Contain("lib/win7/Banana.dll");
|
||||||
}
|
}
|
||||||
|
|
|
@ -169,7 +169,7 @@ namespace Microsoft.Extensions.DependencyModel.Tests
|
||||||
"HASH",
|
"HASH",
|
||||||
new [] { RuntimeAssembly.Create("Banana.dll")},
|
new [] { RuntimeAssembly.Create("Banana.dll")},
|
||||||
new []
|
new []
|
||||||
{
|
{Lock
|
||||||
new RuntimeTarget("win7-x64",
|
new RuntimeTarget("win7-x64",
|
||||||
new [] { RuntimeAssembly.Create("Banana.Win7-x64.dll") },
|
new [] { RuntimeAssembly.Create("Banana.Win7-x64.dll") },
|
||||||
new [] { "Banana.Win7-x64.so" }
|
new [] { "Banana.Win7-x64.so" }
|
||||||
|
@ -334,6 +334,7 @@ namespace Microsoft.Extensions.DependencyModel.Tests
|
||||||
optimize: true,
|
optimize: true,
|
||||||
keyFile: "Key.snk",
|
keyFile: "Key.snk",
|
||||||
delaySign: true,
|
delaySign: true,
|
||||||
|
debugType: null,
|
||||||
publicSign: true,
|
publicSign: true,
|
||||||
emitEntryPoint: true,
|
emitEntryPoint: true,
|
||||||
generateXmlDocumentation: true)));
|
generateXmlDocumentation: true)));
|
||||||
|
|
|
@ -49,7 +49,7 @@ namespace Microsoft.Extensions.DependencyModel.Tests
|
||||||
var exception = Assert.Throws<InvalidOperationException>(() => resolver.TryResolveAssemblyPaths(library, null));
|
var exception = Assert.Throws<InvalidOperationException>(() => resolver.TryResolveAssemblyPaths(library, null));
|
||||||
exception.Message.Should()
|
exception.Message.Should()
|
||||||
.Contain(library.Hash)
|
.Contain(library.Hash)
|
||||||
.And.Contain(library.PackageName);
|
.And.Contain(library.Name);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
|
@ -114,7 +114,7 @@ namespace Microsoft.Extensions.DependencyModel.Tests
|
||||||
var exception = Assert.Throws<InvalidOperationException>(() => resolver.TryResolveAssemblyPaths(library, assemblies));
|
var exception = Assert.Throws<InvalidOperationException>(() => resolver.TryResolveAssemblyPaths(library, assemblies));
|
||||||
exception.Message.Should()
|
exception.Message.Should()
|
||||||
.Contain(F.SecondAssemblyPath)
|
.Contain(F.SecondAssemblyPath)
|
||||||
.And.Contain(library.PackageName);
|
.And.Contain(library.Name);
|
||||||
}
|
}
|
||||||
|
|
||||||
private IEnvironment GetDefaultEnviroment()
|
private IEnvironment GetDefaultEnviroment()
|
||||||
|
|
|
@ -95,7 +95,7 @@ namespace Microsoft.Extensions.DependencyModel.Tests
|
||||||
var exception = Assert.Throws<InvalidOperationException>(() => resolver.TryResolveAssemblyPaths(library, assemblies));
|
var exception = Assert.Throws<InvalidOperationException>(() => resolver.TryResolveAssemblyPaths(library, assemblies));
|
||||||
exception.Message.Should()
|
exception.Message.Should()
|
||||||
.Contain(F.SecondAssemblyPath)
|
.Contain(F.SecondAssemblyPath)
|
||||||
.And.Contain(library.PackageName);
|
.And.Contain(library.Name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -153,7 +153,7 @@ namespace Microsoft.Extensions.DependencyModel.Tests
|
||||||
|
|
||||||
exception.Message.Should()
|
exception.Message.Should()
|
||||||
.Contain(F.SecondAssemblyPath)
|
.Contain(F.SecondAssemblyPath)
|
||||||
.And.Contain(library.PackageName);
|
.And.Contain(library.Name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue