开发者

Replace characters within an msbuild variable

I need to replace c开发者_运维技巧haracters 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?


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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜