替换msbuild变量中的字符

时间:2011-06-24 11:02:38

标签: msbuild msbuild-4.0

我需要替换我传递给msbuild 4中的exec任务的变量中的字符。具体来说,我需要在{{\中使用正斜杠/替换所有出现的反斜杠$(MSBuildProjectDirectory)。 1}}变量。

例如:

<Target Name="DoStuff">
    <Exec Command="stuff.exe $(MSBuildProjectDirectoryWithSlashesFixed)/SomeFile.txt" />
</Target>

被调用的可执行文件是一个oracle组件,无法处理Windows格式的斜杠。

我看过Property Functions,但由于System.String.Replace()是一个实例方法而不是静态方法,所以它似乎不能用于我的需要。

有什么想法吗?

1 个答案:

答案 0 :(得分:30)

您还可以将实例方法用作属性函数(只要您将自己限制为注册为安全的类型)。

<PropertyGroup>
  <MSBuildProjectDirectoryWSF>$(MSBuildProjectDirectory.Replace('\', '/'))</MSBuildProjectDirectoryWSF>
</PropertyGroup>

(我可能错过了一些在斜杠上的转义)。

Visual Studio Blog上提供了更多文档。

相关问题