Удалить конечную обратную косую черту из msbuild batching Свойства каталога

Я пытаюсь запустить задачу exec внутри msbuild script и нашел очень неприятную проблему. Команда 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 
&quot;%(TestAssemblies.RootDir)%(TestAssemblies.Directory)&quot; />

Итак, мой вопрос в том, как удалить эту надоедливую обратную косую черту?

Спасибо заранее.

Ответ 1

Если вы используете MSBuild 4.0, вы можете использовать функции свойств, как указано Amir, например:

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