2

msbuildtasks.tigris.orgのfileUpdateタスクを使用して、Webセットアッププロジェクトの一部としてイメージsrcを変更し、静的imgサブドメイン(または後でCDN)
を指すようにします。与えられたプロジェクト:

<Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets" />
<Target Name="AfterBuild">
<FileUpdate 
   Files="basic.css" 
   Regex="/images/([^\)]*)" 
   ReplacementText="http://img.domain.com/images/$1" />
</Target>

ただし、元のcssソースファイルを上書きしたくはありませんが、msiを生成するデプロイメントプロジェクトの一部としてこれを実行したいと思います。これは、標準の.csprojであるカスタムアクションプロジェクトも使用するWebセットアッププロジェクト(.vdproj)を使用して行われます。

私の質問は次のとおりです。

  1. セットアッププロジェクトでこのタスクを実行して、.msiに入るファイルのコンテンツを置き換えるにはどうすればよいですか?
  2. ファイルにワイルドカードを使用する方法はありますか?理想的には、すべての.cssファイルに対してこれを実行すると言いたいですか?
4

1 に答える 1

11

これを実現するには、アイテムグループを使用してリストを作成する必要があります

<Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets" /> 
<Target Name="AfterBuild"> 

<ItemGroup>
   <CssFiles Include='$(SolutionRoot)\**\*.css' />
</ItemGroup>

<FileUpdate  
   Files="@(CssFiles)"  
   Regex="/images/([^\)]*)"  
   ReplacementText="http://img.domain.com/images/$1" /> 
</Target>
于 2010-02-05T11:13:13.337 に答える