MSBuild如何在项列表中进行字符串替换

时间:2012-08-15 19:32:22

标签: msbuild replace readlines

虽然我在学习MSBuild脚本方面取得了一些进展,但我仍然认为自己是初学者,所以请放轻松。

我有一个运行工作项查询的MSBuild脚本,并将其输出到我转过来并用

读取的文件中
<ReadLinesFromFile File="output.txt">
<Output ItemName="ItemList"  TaskParameter="Lines"/>
</ReadLinesFromFile>

文件中的行包含ID号,用户名和任务说明。为了“漂亮起来”,我想用文件的名称替换文件中的用户名,即将jdoe更改为John Doe,所以我认为扩展包中的TextString任务是正确的,但我不喜欢不对列表进行任何更改。一旦我开始工作,我将希望为我的所有团队成员复制它。

<TextString TaskAction="Replace" OldString="@(ItemList)" OldValue="jdoe" NewValue="John Doe">
  <Output PropertyName="ItemList" TaskParameter="NewString"/>
</TextString>
<Message Text="Results: @(ItemList)" />

脚本不会崩溃或出错,但它也不会进行替换。有什么问题?

1 个答案:

答案 0 :(得分:3)

您可以尝试文件系统任务操作。我认为问题是你使用的是项目列表而不是$ property元素

<MSBuild.ExtensionPack.FileSystem.File TaskAction="Replace" 
TextEncoding="ASCII"  RegexPattern='"Jdoe"' 
Replacement='"John Doe"' 
Files="%(output.txt)"/>