1

私はMSBuildスクリプトの学習である程度の進歩を遂げましたが、それでも自分は初心者だと思っているので、気楽にやってください。

作業項目クエリを実行してファイルに出力するMSBuildスクリプトがあり、それを振り返って読みます。

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

ファイルの行には、ID番号、ユーザー名、およびタスクの説明が含まれています。「きれいにする」ために、ファイル内のユーザー名を人の名前に置き換えたい、つまり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)" />

スクリプトがクラッシュしたりエラーが発生したりすることはありませんが、置換も行われません。なにが問題ですか?

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 に答える