2012-08-15 41 views
1

虽然我在学习MSBuild脚本方面取得了一些很好的进展,但我仍然认为自己是初学者,所以请对我轻松点。MSBuild在项目列表中如何做字符串替换

我有一个运行工作项查询,并输出到我转身与

<ReadLinesFromFile File="output.txt"> 
<Output ItemName="ItemList" TaskParameter="Lines"/> 
</ReadLinesFromFile> 

文件中的行读取包含ID号,用户名和任务的文件一个MSBuild脚本描述。为了“很好”,我想用文件名替换文件中的用户名,即将jdoe改为John Doe,所以我认为Extension Pack中的TextString任务是正确的,但我不会对列表没有任何改变。一旦我得到这个工作,我会想为我的团队成员复制它。

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

脚本不会崩溃或出现错误,但它也不会执行替换。哪里不对?

回答

3

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

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

非常感谢!这解决了它。 – bdickerson 2012-08-16 13:34:07

+0

很高兴我能帮到你。 – SoftwareCarpenter 2012-08-16 18:29:11

相关问题