我需要替换我传递给msbuild 4中的exec任务的变量中的字符。具体来说,我需要在{{\
中使用正斜杠/
替换所有出现的反斜杠$(MSBuildProjectDirectory)
。 1}}变量。
例如:
<Target Name="DoStuff">
<Exec Command="stuff.exe $(MSBuildProjectDirectoryWithSlashesFixed)/SomeFile.txt" />
</Target>
被调用的可执行文件是一个oracle组件,无法处理Windows格式的斜杠。
我看过Property Functions,但由于System.String.Replace()
是一个实例方法而不是静态方法,所以它似乎不能用于我的需要。
有什么想法吗?
答案 0 :(得分:30)
您还可以将实例方法用作属性函数(只要您将自己限制为注册为安全的类型)。
<PropertyGroup>
<MSBuildProjectDirectoryWSF>$(MSBuildProjectDirectory.Replace('\', '/'))</MSBuildProjectDirectoryWSF>
</PropertyGroup>
(我可能错过了一些在斜杠上的转义)。
Visual Studio Blog上提供了更多文档。