2011-06-24 80 views
18

我需要替換我傳遞給msbuild 4中的exec任務的變量中的字符。具體而言,我需要用$(MSBuildProjectDirectory)變量中的正斜槓/替換所有出現的反斜槓\替換msbuild變量中的字符

如:

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

可執行文件被稱爲是一個Oracle組件不能在Windows格式斜線處理。

我看過Property Functions,但由於System.String.Replace()是一個實例方法而不是靜態方法,它似乎不能用於我的需要。

任何想法?

回答

30

您也可以使用實例方法作爲屬性函數(只要您限制自己註冊爲安全類型)。

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

(我可能會錯過的斜線部分逸出)。

更多文檔請見Visual Studio Blog

+0

工程魅力。謝謝! – grenade