使用msbuild使用csproj文件中的内容项打包网站

时间:2011-10-24 17:26:48

标签: msbuild csproj

我已经编写了一个msbuild脚本来打包webapp,如下所示:

<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文件的内容项?

或者......什么是我想要实现的更好的方式?

感谢。

1 个答案:

答案 0 :(得分:0)

您是否考虑过使用Web部署项目?然后,您可以调用打包目标。

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