2011-10-24 90 views
0

我已經寫了一個MSBuild腳本如下打包web應用程序打包網站:使用的MSBuild利用的csproj文件中的內容項

<Project 
    xmlns="http://schemas.microsoft.com/developer/msbuild/2003" 
    ToolsVersion="4.0" 
    DefaultTargets="Main"> 

    <PropertyGroup>   
     <WebAppSourceDir>e:\Web</WebAppSourceDir> 
    </PropertyGroup>   

    <Import Project="$(WebAppSourceDir)\WebApp.csproj"/> 

    <ItemGroup> 
     <BuiltFiles Include="$(WebAppSourceDir)\bin\**\*.*"/> 
    </ItemGroup>    

    <Target Name="Main" DependsOnTargets="" > 
     <Copy SourceFiles="$(WebAppSourceDir)\%(Content.Identity)" 
      DestinationFiles="c:\temp\buildoutput\%(Content.Identity)" Condition="%(Content.Link) == ''"/> 

     <Copy SourceFiles="@(BuiltFiles)" 
      DestinationFolder="c:\temp\buildoutput\bin\%(RecursiveDir)"/> 
    </Target>  
</Project> 

這工作得很好,但我們在我們的解決方案建立多個Web項目和它們都是在同一個更大的msbuild項目中同時打包的。那麼我怎麼能在任何時候特別要求給定csproj文件的內容項?

另外...什麼是做我想要實現的更好的方式?

謝謝。

回答

0

您是否考慮過使用Web部署項目?然後您可以調用打包目標。

http://blogs.msdn.com/b/webdevtools/archive/2010/04/14/visual-studio-2010-web-deployment-projects-beta-avail-now.aspx

+0

是的,這就是我們目前正在使用的,但我不喜歡它的包裝和複製是它的,我們正在依靠,所以我試圖重新創建自己的唯一部分。 – Gaz

+0

@Gaz - 你爲什麼不直接將這些MSBuild任務導入到你自己的目標文件中,然後利用它們,然而你喜歡它呢? –

+0

我會研究這個 - 好主意。 – Gaz

相關問題