在msbuild变量中替换字符

20

我需要替换一个变量中的字符,并将其传递给msbuild 4中的exec任务。具体来说,我需要将$(MSBuildProjectDirectory)变量中所有出现的反斜杠\替换为正斜杠/

例如:

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

被调用的可执行文件是 Oracle 组件,它无法处理 Windows 格式下的斜杠。

我查看了 属性函数,但由于 System.String.Replace() 是实例方法而非静态方法,似乎不能满足我的需求。

有什么想法吗?

1个回答

35

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

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

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接