1

虽然我在学习 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)" />

该脚本不会崩溃或出错,但也不会进行替换。怎么了?

4

1 回答 1

3

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

<MSBuild.ExtensionPack.FileSystem.File TaskAction="Replace" 
TextEncoding="ASCII"  RegexPattern='"Jdoe"' 
Replacement='"John Doe"' 
Files="%(output.txt)"/>
于 2012-08-16T12:44:23.377 回答