Replace characters within an msbuild variable

ⅰ亾dé卋堺 提交于 2019-12-08 14:39:58

问题


I need to replace characters in a variable I am passing to an exec task within msbuild 4. Specifically, I need to replace all occurrences of backslashes \ with forward-slashes / in the $(MSBuildProjectDirectory) variable.

eg:

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

The executable being called is an oracle component that can't deal with slashes in windows format.

I've had a look at Property Functions, but as System.String.Replace() is an instance method rather than a static method, it seems it can't be used for my needs.

Any ideas?


回答1:


You can also use instance methods as property functions (as long as you restrict yourself to types registered as safe).

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

(I might have missed some escaping on the slashes).

More documentation is available on Visual Studio Blog.



来源:https://stackoverflow.com/questions/6466848/replace-characters-within-an-msbuild-variable

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!