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

View file

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

View file

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

View file

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

View file

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

View file

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