2010-01-07 68 views
2

我期待使用fileUpdate任務從msbuildtasks.tigris.org修改圖片src的作爲我們的Web安裝項目的一部分,因此,他們將指向一個靜態的IMG子域(或更高版本的CDN)
我可以用給定的項目中運行一個任務:的MSBuild fileupdate安裝項目

<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文件做到這一點?

感謝您的幫助

回答

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>