private static void AddDynamicAssembly([NotNull] [ItemNotNull] ICollection<ComposablePartCatalog> catalogs, [NotNull] string toolsDirectory, [NotNull] string assemblyFileName, [NotNull] string directory) { if (!Directory.Exists(directory)) { return; } var collectionsFileName = Path.Combine(toolsDirectory, "System.Collections.Immutable.dll"); if (!File.Exists(collectionsFileName)) { Console.WriteLine("System.Collections.Immutable.dll is missing. Extensions will not be loaded."); return; } var codeAnalysisFileName = Path.Combine(toolsDirectory, "Microsoft.CodeAnalysis.dll"); if (!File.Exists(codeAnalysisFileName)) { Console.WriteLine("Microsoft.CodeAnalysis.dll is missing. Extensions will not be loaded."); return; } var compilerService = new CsharpCompilerService(); var fileNames = Directory.GetFiles(directory, "*.cs", SearchOption.AllDirectories); if (!fileNames.Any()) { return; } var assembly = compilerService.Compile(assemblyFileName, fileNames); if (assembly != null) { catalogs.Add(new AssemblyCatalog(assembly)); } }
private static void AddDynamicAssembly([NotNull] [ItemNotNull] ICollection<ComposablePartCatalog> catalogs, [NotNull] string toolsDirectory, [NotNull] string assemblyFileName, [NotNull] string directory) { if (!Directory.Exists(directory)) { return; } var compilerService = new CsharpCompilerService(); var fileNames = Directory.GetFiles(directory, "*.cs", SearchOption.AllDirectories); if (!fileNames.Any()) { return; } var assembly = compilerService.Compile(toolsDirectory, assemblyFileName, fileNames); if (assembly != null) { catalogs.Add(new AssemblyCatalog(assembly)); } }