我正在尝试在msbuild脚本中使用exec任务来工作,并且发现了一个非常烦人的问题。 exec命令很好,只是我正在运行的进程(Ncover.Console.exe)无法处理目录名末尾的反斜杠。
使用剪切示例说明以下内容:
<exec command="NCover.Console.exe nunit-console.exe some.dll [snip] //w c:\out" />
但这失败了(注意“c:\ out”末尾的斜线):
<exec command="NCover.Console.exe nunit-console.exe some.dll [snip] //w c:\out\" />
我不能简单地删除尾部反斜杠的原因是使用批处理读取值。所以在与上面相同的剪辑中,实际看起来像这样:
<exec command="NCover.Console.exe nunit-console.exe some.dll [snip] //w
"%(TestAssemblies.RootDir)%(TestAssemblies.Directory)" />
所以我的问题是如何删除这个讨厌的尾随反斜杠?
提前致谢。
答案 0 :(得分:18)
如果您使用的是MSBuild 4.0,则可以使用Amir指出的属性函数,如下所示:
<PropertyGroup>
<TestAssembliesDirectory>%(TestAssemblies.Directory)</TestAssembliesDirectory>
</PropertyGroup>
<exec command="NCover.Console.exe nunit-console.exe some.dll [snip] //w "%(TestAssemblies.RootDir)$(TestAssembliesDirectory.TrimEnd('\'))"" />