2

我希望使用 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

我的问题是:

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