msbuild文件更新安装程序项目

msbuild文件更新安装程序项目,msbuild,msbuildcommunitytasks,Msbuild,Msbuildcommunitytasks,我希望使用msbuildtasks.tigris.org中的fileUpdate任务来修改图像src,将其作为web安装项目的一部分,以便它们指向静态img子域(或更高版本的CDN) 我可以在给定项目中使用以下命令运行任务: <Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets" /> <Target Name="AfterBuild">

我希望使用msbuildtasks.tigris.org中的fileUpdate任务来修改图像src,将其作为web安装项目的一部分,以便它们指向静态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的部署项目的一部分运行。 这是使用web安装项目(.vdproj)完成的,该项目还使用一个自定义操作项目,该项目只是一个标准的.csproj

我的问题是:

  • 如何在安装项目中运行此任务,以便替换进入.msi的文件中的内容
  • 有没有一种方法可以对文件使用通配符?理想情况下,我想说的是对所有的.css文件都使用通配符

  • 为了实现这一点,您需要使用项目组为您创建列表

    <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>