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

发布于 2024-12-12 05:03:40 字数 1065 浏览 0 评论 0原文

我编写了一个 msbuild 脚本来打包 Web 应用程序,如下所示:

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

或者...有什么更好的方法来实现我想要实现的目标?

谢谢。

I've written an msbuild script to package a webapp as follows:

<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>

This works fine, but we build multiple web projects in our solution and they are all packaged at the same time with the same greater msbuild project. So how can I specifically ask for just the Content Items of a given csproj file at any one time?

Alternatively... what is a better way of doing what I'm trying to achieve?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

血之狂魔 2024-12-19 05:03:40

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

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

Have you considered using Web Deployment Projects? You can then call the Packaging target.

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文