Fixes #1280
PR Feedback for resgen tests don't trim update use-dev for win10 additional product changes More fixes fix fix resgen
This commit is contained in:
parent
e486fb2020
commit
ccce495737
6 changed files with 34 additions and 23 deletions
|
@ -4,7 +4,7 @@
|
|||
#
|
||||
|
||||
# Put the stage2 output on the front of the path
|
||||
$stage2 = "$PSScriptRoot\..\artifacts\win7-x64\stage2\bin"
|
||||
$stage2 = "$PSScriptRoot\..\artifacts\win10-x64\stage2\bin"
|
||||
if (Test-Path $stage2) {
|
||||
$splat = $env:PATH.Split(";")
|
||||
$stage2 = Convert-Path $stage2
|
||||
|
@ -12,5 +12,5 @@ if (Test-Path $stage2) {
|
|||
$env:PATH="$stage2;$env:PATH"
|
||||
}
|
||||
} else {
|
||||
Write-Host "You don't have a dev build in the 'artifacts\win7-x64\stage2' folder!"
|
||||
Write-Host "You don't have a dev build in the 'artifacts\win10-x64\stage2' folder!"
|
||||
}
|
||||
|
|
|
@ -101,7 +101,7 @@ namespace Microsoft.DotNet.Tools.Compiler.Csc
|
|||
|
||||
allArgs.AddRange(analyzers.Select(a => $"-a:\"{a.Trim('"')}\""));
|
||||
allArgs.AddRange(references.Select(r => $"-r:\"{r.Trim('"')}\""));
|
||||
allArgs.AddRange(resources.Select(resource => $"-resource:{resource.Trim('"')}"));
|
||||
allArgs.AddRange(resources.Select(resource => $"-resource:{resource}"));
|
||||
allArgs.AddRange(sources.Select(s => $"\"{s.Trim('"')}\""));
|
||||
|
||||
var rsp = Path.Combine(tempOutputStrippedSpaces, "dotnet-compile-csc.rsp");
|
||||
|
|
|
@ -56,8 +56,8 @@ namespace Microsoft.DotNet.Tools.Compiler
|
|||
{
|
||||
var arguments = new[]
|
||||
{
|
||||
resgenFile.InputFile,
|
||||
$"-o:{resgenFile.OutputFile}",
|
||||
$"\"{resgenFile.InputFile}\"",
|
||||
$"-o:\"{resgenFile.OutputFile}\"",
|
||||
$"-v:{project.Version.Version}"
|
||||
};
|
||||
|
||||
|
@ -71,11 +71,11 @@ namespace Microsoft.DotNet.Tools.Compiler
|
|||
return false;
|
||||
}
|
||||
|
||||
compilerArgs.Add($"--resource:\"{resgenFile.OutputFile},{Path.GetFileName(resgenFile.MetadataName)}\"");
|
||||
compilerArgs.Add($"--resource:\"{resgenFile.OutputFile}\",{Path.GetFileName(resgenFile.MetadataName)}");
|
||||
}
|
||||
else
|
||||
{
|
||||
compilerArgs.Add($"--resource:\"{resgenFile.InputFile},{Path.GetFileName(resgenFile.MetadataName)}\"");
|
||||
compilerArgs.Add($"--resource:\"{resgenFile.InputFile}\",{Path.GetFileName(resgenFile.MetadataName)}");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -89,7 +89,7 @@ namespace Microsoft.DotNet.Tools.Compiler
|
|||
string outputPath)
|
||||
{
|
||||
var referencePaths = CompilerUtil.GetReferencePathsForCultureResgen(dependencies);
|
||||
var resgenReferenceArgs = referencePaths.Select(path => $"-r:{path}").ToList();
|
||||
var resgenReferenceArgs = referencePaths.Select(path => $"-r:\"{path}\"").ToList();
|
||||
var cultureResgenFiles = CompilerUtil.GetCultureResources(project, outputPath);
|
||||
|
||||
foreach (var resgenFile in cultureResgenFiles)
|
||||
|
@ -104,10 +104,10 @@ namespace Microsoft.DotNet.Tools.Compiler
|
|||
var arguments = new List<string>();
|
||||
|
||||
arguments.AddRange(resgenReferenceArgs);
|
||||
arguments.Add($"-o:{resgenFile.OutputFile}");
|
||||
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}"));
|
||||
arguments.AddRange(resgenFile.InputFileToMetadata.Select(fileToMetadata => $"\"{fileToMetadata.Key}\",{fileToMetadata.Value}"));
|
||||
var rsp = Path.Combine(intermediateOutputPath, $"dotnet-resgen.rsp");
|
||||
File.WriteAllLines(rsp, arguments);
|
||||
|
||||
|
|
|
@ -115,7 +115,7 @@ namespace Microsoft.DotNet.Tools.Compiler
|
|||
writer.Write(dependencyContext, fileStream);
|
||||
}
|
||||
|
||||
compilerArgs.Add($"--resource:\"{depsJsonFile},{context.ProjectFile.Name}.deps.json\"");
|
||||
compilerArgs.Add($"--resource:\"{depsJsonFile}\",{context.ProjectFile.Name}.deps.json");
|
||||
}
|
||||
|
||||
if (!AddNonCultureResources(context.ProjectFile, compilerArgs, intermediateOutputPath))
|
||||
|
|
|
@ -19,8 +19,14 @@ namespace Microsoft.DotNet.Tools.Resgen
|
|||
|
||||
public int Execute()
|
||||
{
|
||||
var intputResourceFiles = Args.Select(ParseInputFile).ToArray();
|
||||
var outputResourceFile = ResourceFile.Create(OutputFileName);
|
||||
var inputResourceFiles = Args.Select(ParseInputFile).ToArray();
|
||||
var outputResourceFile = ResourceFile.Create(OutputFileName.Trim('"'));
|
||||
|
||||
var trimmedCompilationReferences = default(string[]);
|
||||
if (CompilationReferences != null)
|
||||
{
|
||||
trimmedCompilationReferences = CompilationReferences.Select(r => r.Trim('"')).ToArray();
|
||||
}
|
||||
|
||||
switch (outputResourceFile.Type)
|
||||
{
|
||||
|
@ -33,22 +39,23 @@ namespace Microsoft.DotNet.Tools.Resgen
|
|||
AssemblyVersion = AssemblyVersion,
|
||||
};
|
||||
|
||||
ResourceAssemblyGenerator.Generate(intputResourceFiles,
|
||||
ResourceAssemblyGenerator.Generate(inputResourceFiles,
|
||||
outputStream,
|
||||
metadata,
|
||||
Path.GetFileNameWithoutExtension(outputResourceFile.File.Name),
|
||||
CompilationReferences.ToArray());
|
||||
trimmedCompilationReferences
|
||||
);
|
||||
}
|
||||
break;
|
||||
case ResourceFileType.Resources:
|
||||
using (var outputStream = outputResourceFile.File.Create())
|
||||
{
|
||||
if (intputResourceFiles.Length > 1)
|
||||
if (inputResourceFiles.Length > 1)
|
||||
{
|
||||
Reporter.Error.WriteLine("Only one input file required when generating .resource output");
|
||||
return 1;
|
||||
}
|
||||
ResourcesFileGenerator.Generate(intputResourceFiles.Single().Resource, outputStream);
|
||||
ResourcesFileGenerator.Generate(inputResourceFiles.Single().Resource, outputStream);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
@ -61,13 +68,13 @@ namespace Microsoft.DotNet.Tools.Resgen
|
|||
|
||||
private static ResourceSource ParseInputFile(string arg)
|
||||
{
|
||||
var seperatorIndex = arg.IndexOf(',');
|
||||
var separatorIndex = arg.IndexOf(',');
|
||||
string name;
|
||||
string metadataName;
|
||||
if (seperatorIndex > 0)
|
||||
if (separatorIndex > 0)
|
||||
{
|
||||
name = arg.Substring(0, seperatorIndex);
|
||||
metadataName = arg.Substring(seperatorIndex + 1);
|
||||
name = arg.Substring(0, separatorIndex);
|
||||
metadataName = arg.Substring(separatorIndex + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -75,6 +82,10 @@ namespace Microsoft.DotNet.Tools.Resgen
|
|||
metadataName = arg;
|
||||
}
|
||||
|
||||
// Remove surrounding quotes
|
||||
name = name.Trim('"');
|
||||
metadataName = metadataName.Trim('"');
|
||||
|
||||
return new ResourceSource(ResourceFile.Create(name), metadataName);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -23,7 +23,7 @@ namespace Microsoft.DotNet.Tools.Resgen.Tests
|
|||
}
|
||||
|
||||
[Fact]
|
||||
public void Test_Build_Project_with_Resources_with_Space_in_Path()
|
||||
public void Test_Build_Project_with_Resources_with_Space_in_Path_Should_Succeed()
|
||||
{
|
||||
var spaceBufferDirectory = _root.CreateDirectory("space directory");
|
||||
var testAppDir = spaceBufferDirectory.CreateDirectory("TestProjectWithResource");
|
||||
|
@ -33,7 +33,7 @@ namespace Microsoft.DotNet.Tools.Resgen.Tests
|
|||
var testProject = GetProjectPath(testAppDir);
|
||||
var buildCommand = new BuildCommand(testProject);
|
||||
|
||||
var result = buildCommand.Execute().Should().Pass();
|
||||
buildCommand.Execute().Should().Pass();
|
||||
}
|
||||
|
||||
private void CopyProjectToTempDir(string projectDir, TempDirectory tempDir)
|
||||
|
|
Loading…
Add table
Reference in a new issue