public IEnumerable<IPackageInfo> DiscoverAndLoadPackages(Action onAssembliesScanned) { _packages = findAllPackages(); loadAssemblies(_packages, onAssembliesScanned); var discoveredActivators = runAllBootstrappers(); activatePackages(_packages, discoveredActivators); return _packages; }
public static void LoadPackages(Action<IPackageFacility> configuration) { var facility = new PackageFacility(); Diagnostics = new PackagingDiagnostics(); var assemblyLoader = new AssemblyLoader(Diagnostics); var graph = new PackagingRuntimeGraph(Diagnostics, assemblyLoader); var codeLocation = findCallToLoadPackages(); graph.PushProvenance(codeLocation); configuration(facility); facility.As<IPackagingRuntimeGraphConfigurer>().Configure(graph); graph.PopProvenance(); graph.DiscoverAndLoadPackages(() => { _assemblies.Clear(); _assemblies.AddRange(assemblyLoader.Assemblies); }); }