public DependencyContext Load(Assembly assembly) { if (assembly == null) { throw new ArgumentNullException(nameof(assembly)); } DependencyContext context = null; using (var reader = _jsonReaderFactory()) { if (IsEntryAssembly(assembly)) { context = LoadEntryAssemblyContext(reader); } if (context == null) { context = LoadAssemblyContext(assembly, reader); } if (context != null) { foreach (var extraPath in _nonEntryPointDepsPaths) { var extraContext = LoadContext(reader, extraPath); if (extraContext != null) { context = context.Merge(extraContext); } } } } return(context); }
public DependencyContext Load(Assembly assembly) { if (assembly == null) { throw new ArgumentNullException(nameof(assembly)); } DependencyContext context = null; if (IsEntryAssembly(assembly)) { context = LoadEntryAssemblyContext(); } if (context == null) { context = LoadAssemblyContext(assembly); } if (context?.IsPortable == true) { var runtimeContext = LoadRuntimeContext(); if (runtimeContext != null) { context = context.Merge(runtimeContext); } } return(context); }
public DependencyContext Load(Assembly assembly) { if (assembly == null) { throw new ArgumentNullException(nameof(assembly)); } DependencyContext context = null; using (var reader = _jsonReaderFactory()) { if (IsEntryAssembly(assembly)) { context = LoadEntryAssemblyContext(reader); } if (context == null) { context = LoadAssemblyContext(assembly, reader); } if (context?.Target.IsPortable == true) { var runtimeContext = LoadRuntimeContext(reader); if (runtimeContext != null) { context = context.Merge(runtimeContext); } } } return(context); }
public void MergeMergesLibraries() { var compilationLibraries = new[] { CreateCompilation("PackageA"), CreateCompilation("PackageB"), }; var runtimeLibraries = new[] { CreateRuntime("PackageA"), CreateRuntime("PackageB"), }; var compilationLibrariesRedist = new[] { CreateCompilation("PackageB"), CreateCompilation("PackageC"), }; var runtimeLibrariesRedist = new[] { CreateRuntime("PackageB"), CreateRuntime("PackageC"), }; var context = new DependencyContext( CreateTargetInfo(), CompilationOptions.Default, compilationLibraries, runtimeLibraries, new RuntimeFallbacks[] { }); var contextRedist = new DependencyContext( CreateTargetInfo(), CompilationOptions.Default, compilationLibrariesRedist, runtimeLibrariesRedist, new RuntimeFallbacks[] { }); var result = context.Merge(contextRedist); result.CompileLibraries.Should().BeEquivalentTo(new[] { compilationLibraries[0], compilationLibraries[1], compilationLibrariesRedist[1], }); result.RuntimeLibraries.Should().BeEquivalentTo(new[] { runtimeLibraries[0], runtimeLibraries[1], runtimeLibrariesRedist[1], }); }
public void MergeMergesRuntimeGraph() { var context = new DependencyContext( CreateTargetInfo(), CompilationOptions.Default, Enumerable.Empty<CompilationLibrary>(), Enumerable.Empty<RuntimeLibrary>(), new RuntimeFallbacks[] { new RuntimeFallbacks("win8-x64", new [] { "win8" }), }); var contextRedist = new DependencyContext( CreateTargetInfo(), CompilationOptions.Default, Enumerable.Empty<CompilationLibrary>(), Enumerable.Empty<RuntimeLibrary>(), new RuntimeFallbacks[] { new RuntimeFallbacks("win8", new [] { "win7-x64", "win7-x86" }), }); var result = context.Merge(contextRedist); result.RuntimeGraph.Should().Contain(g => g.Runtime == "win8-x64"). Subject.Fallbacks.Should().BeEquivalentTo("win8"); result.RuntimeGraph.Should().Contain(g => g.Runtime == "win8"). Subject.Fallbacks.Should().BeEquivalentTo("win7-x64", "win7-x86"); }