虽然我在学习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)" />
脚本不会崩溃或出错,但它也不会进行替换。有什么问题?
答案 0 :(得分:3)
您可以尝试文件系统任务操作。我认为问题是你使用的是项目列表而不是$ property元素
<MSBuild.ExtensionPack.FileSystem.File TaskAction="Replace"
TextEncoding="ASCII" RegexPattern='"Jdoe"'
Replacement='"John Doe"'
Files="%(output.txt)"/>