msbuild fileupdate安装项目

时间:2010-01-07 12:24:13

标签: msbuildcommunitytasks

我希望使用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文件执行此操作?

感谢您的帮助

1 个答案:

答案 0 :(得分: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>