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

使用msbuild使用csproj文件中的内容项打包网站,msbuild,csproj,Msbuild,Csproj,我已经编写了一个msbuild脚本来打包webapp,如下所示: <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0" DefaultTargets="Main"> <PropertyGroup> <WebAppSourceDir>e:\Web</WebAppSour

我已经编写了一个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>

e:\Web
这很好,但是我们在解决方案中构建了多个web项目,并且它们都使用同一个更大的msbuild项目同时打包。那么,我如何在任何时候明确要求只提供给定csproj文件的内容项呢

或者。。。做我想做的事情的更好方法是什么


谢谢。

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


是的,这就是我们目前正在使用的,但我不喜欢它。包和副本是我们唯一依赖的部分,因此我正在尝试自己重新创建它。@Gaz-为什么不将这些MSBuild任务导入到您自己的目标文件中,然后以您喜欢的方式利用它们呢?@Gaz-让我知道进展如何。。。我以一种通用的方式使用Web.config转换任务,将其应用于App.config和silverlight WCF clientConfig文件,它的工作方式很有魅力。我无法忍受这种配置转换。摩擦太大,无法添加我喜欢的新项目。。我自己写的!