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
|
# 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) {
|
if (Test-Path $stage2) {
|
||||||
$splat = $env:PATH.Split(";")
|
$splat = $env:PATH.Split(";")
|
||||||
$stage2 = Convert-Path $stage2
|
$stage2 = Convert-Path $stage2
|
||||||
|
@ -12,5 +12,5 @@ if (Test-Path $stage2) {
|
||||||
$env:PATH="$stage2;$env:PATH"
|
$env:PATH="$stage2;$env:PATH"
|
||||||
}
|
}
|
||||||
} else {
|
} 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(analyzers.Select(a => $"-a:\"{a.Trim('"')}\""));
|
||||||
allArgs.AddRange(references.Select(r => $"-r:\"{r.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('"')}\""));
|
allArgs.AddRange(sources.Select(s => $"\"{s.Trim('"')}\""));
|
||||||
|
|
||||||
var rsp = Path.Combine(tempOutputStrippedSpaces, "dotnet-compile-csc.rsp");
|
var rsp = Path.Combine(tempOutputStrippedSpaces, "dotnet-compile-csc.rsp");
|
||||||
|
|
|
@ -56,8 +56,8 @@ namespace Microsoft.DotNet.Tools.Compiler
|
||||||
{
|
{
|
||||||
var arguments = new[]
|
var arguments = new[]
|
||||||
{
|
{
|
||||||
resgenFile.InputFile,
|
$"\"{resgenFile.InputFile}\"",
|
||||||
$"-o:{resgenFile.OutputFile}",
|
$"-o:\"{resgenFile.OutputFile}\"",
|
||||||
$"-v:{project.Version.Version}"
|
$"-v:{project.Version.Version}"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -71,11 +71,11 @@ namespace Microsoft.DotNet.Tools.Compiler
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
compilerArgs.Add($"--resource:\"{resgenFile.OutputFile},{Path.GetFileName(resgenFile.MetadataName)}\"");
|
compilerArgs.Add($"--resource:\"{resgenFile.OutputFile}\",{Path.GetFileName(resgenFile.MetadataName)}");
|
||||||
}
|
}
|
||||||
else
|
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)
|
string outputPath)
|
||||||
{
|
{
|
||||||
var referencePaths = CompilerUtil.GetReferencePathsForCultureResgen(dependencies);
|
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);
|
var cultureResgenFiles = CompilerUtil.GetCultureResources(project, outputPath);
|
||||||
|
|
||||||
foreach (var resgenFile in cultureResgenFiles)
|
foreach (var resgenFile in cultureResgenFiles)
|
||||||
|
@ -104,10 +104,10 @@ namespace Microsoft.DotNet.Tools.Compiler
|
||||||
var arguments = new List<string>();
|
var arguments = new List<string>();
|
||||||
|
|
||||||
arguments.AddRange(resgenReferenceArgs);
|
arguments.AddRange(resgenReferenceArgs);
|
||||||
arguments.Add($"-o:{resgenFile.OutputFile}");
|
arguments.Add($"-o:\"{resgenFile.OutputFile}\"");
|
||||||
arguments.Add($"-c:{resgenFile.Culture}");
|
arguments.Add($"-c:{resgenFile.Culture}");
|
||||||
arguments.Add($"-v:{project.Version.Version}");
|
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");
|
var rsp = Path.Combine(intermediateOutputPath, $"dotnet-resgen.rsp");
|
||||||
File.WriteAllLines(rsp, arguments);
|
File.WriteAllLines(rsp, arguments);
|
||||||
|
|
||||||
|
|
|
@ -115,7 +115,7 @@ namespace Microsoft.DotNet.Tools.Compiler
|
||||||
writer.Write(dependencyContext, fileStream);
|
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))
|
if (!AddNonCultureResources(context.ProjectFile, compilerArgs, intermediateOutputPath))
|
||||||
|
|
|
@ -19,8 +19,14 @@ namespace Microsoft.DotNet.Tools.Resgen
|
||||||
|
|
||||||
public int Execute()
|
public int Execute()
|
||||||
{
|
{
|
||||||
var intputResourceFiles = Args.Select(ParseInputFile).ToArray();
|
var inputResourceFiles = Args.Select(ParseInputFile).ToArray();
|
||||||
var outputResourceFile = ResourceFile.Create(OutputFileName);
|
var outputResourceFile = ResourceFile.Create(OutputFileName.Trim('"'));
|
||||||
|
|
||||||
|
var trimmedCompilationReferences = default(string[]);
|
||||||
|
if (CompilationReferences != null)
|
||||||
|
{
|
||||||
|
trimmedCompilationReferences = CompilationReferences.Select(r => r.Trim('"')).ToArray();
|
||||||
|
}
|
||||||
|
|
||||||
switch (outputResourceFile.Type)
|
switch (outputResourceFile.Type)
|
||||||
{
|
{
|
||||||
|
@ -33,22 +39,23 @@ namespace Microsoft.DotNet.Tools.Resgen
|
||||||
AssemblyVersion = AssemblyVersion,
|
AssemblyVersion = AssemblyVersion,
|
||||||
};
|
};
|
||||||
|
|
||||||
ResourceAssemblyGenerator.Generate(intputResourceFiles,
|
ResourceAssemblyGenerator.Generate(inputResourceFiles,
|
||||||
outputStream,
|
outputStream,
|
||||||
metadata,
|
metadata,
|
||||||
Path.GetFileNameWithoutExtension(outputResourceFile.File.Name),
|
Path.GetFileNameWithoutExtension(outputResourceFile.File.Name),
|
||||||
CompilationReferences.ToArray());
|
trimmedCompilationReferences
|
||||||
|
);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ResourceFileType.Resources:
|
case ResourceFileType.Resources:
|
||||||
using (var outputStream = outputResourceFile.File.Create())
|
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");
|
Reporter.Error.WriteLine("Only one input file required when generating .resource output");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
ResourcesFileGenerator.Generate(intputResourceFiles.Single().Resource, outputStream);
|
ResourcesFileGenerator.Generate(inputResourceFiles.Single().Resource, outputStream);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -61,13 +68,13 @@ namespace Microsoft.DotNet.Tools.Resgen
|
||||||
|
|
||||||
private static ResourceSource ParseInputFile(string arg)
|
private static ResourceSource ParseInputFile(string arg)
|
||||||
{
|
{
|
||||||
var seperatorIndex = arg.IndexOf(',');
|
var separatorIndex = arg.IndexOf(',');
|
||||||
string name;
|
string name;
|
||||||
string metadataName;
|
string metadataName;
|
||||||
if (seperatorIndex > 0)
|
if (separatorIndex > 0)
|
||||||
{
|
{
|
||||||
name = arg.Substring(0, seperatorIndex);
|
name = arg.Substring(0, separatorIndex);
|
||||||
metadataName = arg.Substring(seperatorIndex + 1);
|
metadataName = arg.Substring(separatorIndex + 1);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -75,6 +82,10 @@ namespace Microsoft.DotNet.Tools.Resgen
|
||||||
metadataName = arg;
|
metadataName = arg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Remove surrounding quotes
|
||||||
|
name = name.Trim('"');
|
||||||
|
metadataName = metadataName.Trim('"');
|
||||||
|
|
||||||
return new ResourceSource(ResourceFile.Create(name), metadataName);
|
return new ResourceSource(ResourceFile.Create(name), metadataName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,7 +23,7 @@ namespace Microsoft.DotNet.Tools.Resgen.Tests
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[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 spaceBufferDirectory = _root.CreateDirectory("space directory");
|
||||||
var testAppDir = spaceBufferDirectory.CreateDirectory("TestProjectWithResource");
|
var testAppDir = spaceBufferDirectory.CreateDirectory("TestProjectWithResource");
|
||||||
|
@ -33,7 +33,7 @@ namespace Microsoft.DotNet.Tools.Resgen.Tests
|
||||||
var testProject = GetProjectPath(testAppDir);
|
var testProject = GetProjectPath(testAppDir);
|
||||||
var buildCommand = new BuildCommand(testProject);
|
var buildCommand = new BuildCommand(testProject);
|
||||||
|
|
||||||
var result = buildCommand.Execute().Should().Pass();
|
buildCommand.Execute().Should().Pass();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void CopyProjectToTempDir(string projectDir, TempDirectory tempDir)
|
private void CopyProjectToTempDir(string projectDir, TempDirectory tempDir)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue