开发者

Remove trailing backslash from msbuild batching Directory property

开发者 https://www.devze.com 2023-02-17 06:38 出处:网络
I\'m trying to get an exec task inside an msbuild script to work and have found a very annoying issue. The exec command is sweet except that the process I\'m running (Ncover.Console.exe) can\'t handle

I'm trying to get an exec task inside an msbuild script to work and have found a very annoying issue. The exec command is sweet except that the process I'm running (Ncover.Console.exe) can't handle a backslash at the end of a directory name.

To illustrate with a snipped example, the following works:

<exec command="NCover.Console.exe nunit-console.exe some.dll [snip] //w c:\out" />

But this fails (note the slash at the end of "c:\out"):

<exec command="NCover.Console.exe nun开发者_Go百科it-console.exe some.dll [snip] //w c:\out\" />

The reason I can't simply delete the trailing backslash is that the value is read using batching. So in the same snipped as above, it actually looks like this:

<exec command="NCover.Console.exe nunit-console.exe some.dll [snip] //w 
&quot;%(TestAssemblies.RootDir)%(TestAssemblies.Directory)&quot; />

So my question is how can I remove this pesky trailing backslash?

Thanks in advance.


If you are using MSBuild 4.0 you can use property functions as pointed out by Amir, like this:

<PropertyGroup>
  <TestAssembliesDirectory>%(TestAssemblies.Directory)</TestAssembliesDirectory>
</PropertyGroup>
<exec command="NCover.Console.exe nunit-console.exe some.dll [snip] //w &quot;%(TestAssemblies.RootDir)$(TestAssembliesDirectory.TrimEnd('\'))&quot;" />
0

精彩评论

暂无评论...
验证码 换一张
取 消