msbuild スクリプトでファイルに対して正規表現を実行して、Visual Studio セットアップ プロジェクト内に保持されている ProductName を置き換えようとしています。正規表現の置換を行うには、msbuild 拡張パック、特にそのファイル タスクを使用しようとしています。msbuild スクリプト内のターゲットは次のようになります。
<Target Name="CustomiseMsi">
<PropertyGroup>
<RegExPattern>
<![CDATA[(?:\""ProductName\"" = \""8:.*)]]>
</RegExPattern>
<RegExReplacement>
<![CDATA["\"ProductName\" = \"8:MyApp v1.0\""]]>
</RegExReplacement>
<RegExOutput></RegExOutput>
</PropertyGroup>
<MSBuild.ExtensionPack.FileSystem.File
TaskAction="Replace"
RegexPattern="$(RegExPattern)"
Replacement="$(RegExReplacement)"
Files="@(AbsolutePathToVdProjToParse)">
</MSBuild.ExtensionPack.FileSystem.File></Target>
このターゲットを実行すると、次の出力が得られますが、ファイルは変更されません。
CustomiseMsi:
Processing File Collection
Processing File: C:\pathHere\mySetup.vdproj
私はこれを正しい方法で行っていますか?この方法で vdproj (またはその他のもの) で正規表現を更新した人はいますか?