protected static bool GenerateCultureResourceAssemblies( Project project, List <LibraryExport> dependencies, string outputPath, CommonCompilerOptions compilationOptions) { var referencePaths = CompilerUtil.GetReferencePathsForCultureResgen(dependencies); List <CompilerUtil.CultureResgenIO> cultureResgenFiles = null; if (compilationOptions.EmbedInclude == null) { cultureResgenFiles = CompilerUtil.GetCultureResources(project, outputPath); } else { cultureResgenFiles = CompilerUtil.GetCultureResourcesFromIncludeEntries(project, outputPath, compilationOptions); } foreach (var resgenFile in cultureResgenFiles) { var resourceOutputPath = Path.GetDirectoryName(resgenFile.OutputFile); if (!Directory.Exists(resourceOutputPath)) { Directory.CreateDirectory(resourceOutputPath); } var result = Resgen.ResgenCommand.Run( resgenFile.InputFileToMetadata.Select(fileToMetadata => $"{fileToMetadata.Key},{fileToMetadata.Value}"), resgenFile.Culture, resgenFile.OutputFile, project.Version.Version.ToString(), referencePaths); if (result != 0) { return(false); } } return(true); }
private static bool GenerateCultureResourceAssemblies( Project project, List <LibraryExport> dependencies, string intermediateOutputPath, string outputPath) { var referencePaths = CompilerUtil.GetReferencePathsForCultureResgen(dependencies); var resgenReferenceArgs = referencePaths.Select(path => $"-r:{path}").ToList(); var cultureResgenFiles = CompilerUtil.GetCultureResources(project, outputPath); foreach (var resgenFile in cultureResgenFiles) { var resourceOutputPath = Path.GetDirectoryName(resgenFile.OutputFile); if (!Directory.Exists(resourceOutputPath)) { Directory.CreateDirectory(resourceOutputPath); } var arguments = new List <string>(); arguments.AddRange(resgenReferenceArgs); arguments.Add($"-o:{resgenFile.OutputFile}"); arguments.Add($"-c:{resgenFile.Culture}"); arguments.Add($"-v:{project.Version.Version}"); arguments.AddRange(resgenFile.InputFileToMetadata.Select(fileToMetadata => $"{fileToMetadata.Key},{fileToMetadata.Value}")); var rsp = Path.Combine(intermediateOutputPath, $"dotnet-resgen.rsp"); File.WriteAllLines(rsp, arguments); var result = Command.CreateDotNet("resgen", new[] { $"@{rsp}" }) .ForwardStdErr() .ForwardStdOut() .Execute(); if (result.ExitCode != 0) { return(false); } } return(true); }
private static bool GenerateCultureResourceAssemblies(Project project, List <LibraryExport> dependencies, string outputPath) { var referencePaths = CompilerUtil.GetReferencePathsForCultureResgen(dependencies); var resgenReferenceArgs = referencePaths.Select(referencePath => $"-r \"{referencePath}\"").ToList(); var cultureResgenFiles = CompilerUtil.GetCultureResources(project, outputPath); foreach (var resgenFile in cultureResgenFiles) { var resourceOutputPath = Path.GetDirectoryName(resgenFile.OutputFile); if (!Directory.Exists(resourceOutputPath)) { Directory.CreateDirectory(resourceOutputPath); } var arguments = new List <string>(); arguments.AddRange(resgenReferenceArgs); arguments.Add($"-o \"{resgenFile.OutputFile}\""); arguments.Add($"-c {resgenFile.Culture}"); arguments.Add($"-v {project.Version.Version}"); arguments.AddRange(resgenFile.InputFileToMetadata.Select(fileToMetadata => $"\"{fileToMetadata.Key}\",{fileToMetadata.Value}")); var result = Command.Create("dotnet-resgen", arguments) .ForwardStdErr() .ForwardStdOut() .Execute(); if (result.ExitCode != 0) { return(false); } } return(true); }