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:
Bryan Thornbury 2016-02-16 10:57:11 -08:00
parent e486fb2020
commit ccce495737
6 changed files with 34 additions and 23 deletions

View file

@ -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!"
} }

View file

@ -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");

View file

@ -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);

View file

@ -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))

View file

@ -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);
} }
} }

View file

@ -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)