private static void WriteDepsFileAndCopyProjectDependencies( LibraryExporter exporter, string projectFileName, string outputPath) { exporter .GetDependencies(LibraryType.Package) .WriteDepsTo(Path.Combine(outputPath, projectFileName + FileNameSuffixes.Deps)); var projectExports = exporter.GetDependencies(LibraryType.Project); CopyAllDependencies(outputPath, projectExports); }
private void WriteDepsFileAndCopyProjectDependencies(LibraryExporter exporter) { WriteDeps(exporter); var projectExports = exporter.GetDependencies(LibraryType.Project); CopyAssemblies(projectExports); CopyAssets(projectExports); var packageExports = exporter.GetDependencies(LibraryType.Package); CopyAssets(packageExports); }
private static void WriteDepsFileAndCopyProjectDependencies( LibraryExporter exporter, string projectFileName, string outputPath) { exporter .GetDependencies(LibraryType.Package) .WriteDepsTo(Path.Combine(outputPath, projectFileName + FileNameSuffixes.Deps)); exporter .GetDependencies(LibraryType.Project) .SelectMany(e => e.RuntimeAssets()) .CopyTo(outputPath); }
private void WriteDepsFileAndCopyProjectDependencies(LibraryExporter exporter) { exporter .GetDependencies(LibraryType.Package) .WriteDepsTo(Path.Combine(_runtimeOutputPath, _context.ProjectFile.Name + FileNameSuffixes.Deps)); var projectExports = exporter.GetDependencies(LibraryType.Project); CopyAssemblies(projectExports); CopyAssets(projectExports); var packageExports = exporter.GetDependencies(LibraryType.Package); CopyAssets(packageExports); }
private static void CopyAllDependencies(string outputPath, LibraryExporter exporter) { exporter .GetDependencies() .SelectMany(e => e.RuntimeAssets()) .CopyTo(outputPath); }
public void WriteDeps(LibraryExporter exporter) { var path = Path.Combine(_runtimeOutputPath, _context.ProjectFile.Name + FileNameSuffixes.Deps); CreateDirectoryIfNotExists(path); File.WriteAllLines(path, exporter .GetDependencies(LibraryType.Package) .SelectMany(GenerateLines)); var compilerOptions = _context.ResolveCompilationOptions(_configuration); var includeCompile = compilerOptions.PreserveCompilationContext == true; var exports = exporter.GetAllExports().ToArray(); var dependencyContext = new DependencyContextBuilder().Build( compilerOptions: includeCompile? compilerOptions: null, compilationExports: includeCompile ? exports : null, runtimeExports: exports, portable: string.IsNullOrEmpty(_context.RuntimeIdentifier), target: _context.TargetFramework, runtime: _context.RuntimeIdentifier ?? string.Empty); var writer = new DependencyContextWriter(); var depsJsonFile = Path.Combine(_runtimeOutputPath, _context.ProjectFile.Name + FileNameSuffixes.DepsJson); using (var fileStream = File.Create(depsJsonFile)) { writer.Write(dependencyContext, fileStream); } }
private void GenerateBindingRedirects(LibraryExporter exporter) { var outputName = _outputPaths.RuntimeFiles.Assembly; var configFile = outputName + Constants.ConfigSuffix; var existingConfig = new DirectoryInfo(_context.ProjectDirectory) .EnumerateFiles() .FirstOrDefault(f => f.Name.Equals("app.config", StringComparison.OrdinalIgnoreCase)); if (existingConfig != null) { File.Copy(existingConfig.FullName, configFile, true); } List <string> configFiles = new List <string>(); configFiles.Add(configFile); foreach (var export in exporter.GetDependencies()) { var dependencyExecutables = export.RuntimeAssemblyGroups.GetDefaultAssets() .Where(asset => asset.FileName.ToLower().EndsWith(FileNameSuffixes.DotNet.Exe)) .Select(asset => Path.Combine(_runtimeOutputPath, asset.FileName)); foreach (var executable in dependencyExecutables) { configFile = executable + Constants.ConfigSuffix; configFiles.Add(configFile); } } exporter.GetAllExports().GenerateBindingRedirects(configFiles); }
private void MakeCompilationOutputRunnableForFullFramework() { var dependencies = _exporter.GetDependencies(); CopyAssemblies(dependencies); CopyAssets(dependencies); GenerateBindingRedirects(_exporter); }
private void WriteDepsFileAndCopyProjectDependencies(LibraryExporter exporter) { // When called this way we don't need to filter exports, so we pass the same list to both. var exports = exporter.GetAllExports().ToList(); WriteConfigurationFiles(exports, exports, includeDevConfig: true); var projectExports = exporter.GetAllProjectTypeDependencies(); CopyAssemblies(projectExports); CopyAssets(projectExports); var packageExports = exporter.GetDependencies(LibraryType.Package); CopyAssets(packageExports); }
private static void MakeRunnable(ProjectContext runtimeContext, string outputPath, LibraryExporter exporter) { CopyContents(runtimeContext, outputPath); if (runtimeContext.TargetFramework.IsDesktop()) { // On desktop we need to copy dependencies since we don't own the host foreach (var export in exporter.GetDependencies()) { CopyExport(outputPath, export); } } else { EmitHost(runtimeContext, outputPath, exporter); } }
private void WriteDepsFileAndCopyProjectDependencies(LibraryExporter exporter) { var exports = exporter.GetAllExports().ToList(); var exportsLookup = exports.ToDictionary(e => e.Library.Identity.Name, StringComparer.OrdinalIgnoreCase); var platformExclusionList = _context.GetPlatformExclusionList(exportsLookup); var filteredExports = exports.FilterExports(platformExclusionList); WriteConfigurationFiles(exports, filteredExports, exports, includeDevConfig: true); var projectExports = exporter.GetAllProjectTypeDependencies(); CopyAssemblies(projectExports); CopyAssets(projectExports); var packageExports = exporter.GetDependencies(LibraryType.Package); CopyAssets(packageExports); }
public static IEnumerable <LibraryExport> GetAllProjectTypeDependencies(this LibraryExporter exporter) { return (exporter.GetDependencies(LibraryType.Project) .Concat(exporter.GetDependencies(LibraryType.MSBuildProject))); }
private void MakeCompilationOutputRunnableForFullFramework( string outputPath) { CopyAllDependencies(outputPath, _exporter.GetDependencies()); GenerateBindingRedirects(_exporter); }