Удалить конечную обратную косую черту из 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
"%(TestAssemblies.RootDir)%(TestAssemblies.Directory)" />
Итак, мой вопрос в том, как удалить эту надоедливую обратную косую черту?
Спасибо заранее.
Ответы
Ответ 1
Если вы используете 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('\'))"" />