【问题标题】:Merging external files when building a .NET project构建 .NET 项目时合并外部文件
【发布时间】:2011-01-07 17:36:45
【问题描述】:

我有一个复杂的网站,其中包含 .NET 开发人员、ActionScript 开发人员和前端 HTML/JS 开发人员(我是 .NET 开发人员之一)。该站点在技术上是一个 .NET Web 应用程序,但 AS 和 UI 开发人员从未真正启动过 Visual Studio 或 MsBuild。

我们当前的发布脚本使用“/t:ResolveReferences;_CopyWebApplication”在 Web 应用程序项目上调用 msbuild.exe,然后将输出复制到远程服务器。由于此方法仅复制 .net Web 项目中包含的文件,因此我经常遇到来自 AS 开发人员或 UI 开发人员的文件未部署的情况,因为他们从未将文件添加到 .NET 项目中。

显而易见的解决方案是告诉其他开发人员他们必须将文件添加到 .net 项目中,但这似乎很笨拙且容易出错。

有没有一种好方法可以在预构建或构建期间将排除的文件添加到 .net 项目? 通常所有发往 Web 服务器的文件都已经在 /web 目录下包括 .net 网络项目。现在我只想能够自动(通过 msbuild 或其他脚本)包含该目录中的其余文件。

【问题讨论】:

    标签: .net msbuild build-automation


    【解决方案1】:

    转到项目的属性,然后在“编译”选项卡下单击“构建事件”按钮。然后,您可以使用 XCopy 命令复制其他文件。您可以管理在 XCopy 命令中复制哪些文件或目录,但它足够灵活,您可以指定它来复制某个目录中扩展名为 .js、.ascx、.gif 的所有文件等。

    【讨论】:

    • 我考虑过,但它不只是将手动任务从 Visual Studio IDE 推迟到构建脚本吗?听起来我仍然需要手动将每个新文件添加到 xcopy 命令中。
    • 将广泛的 xcopy 与排除文件结合使用应该可以让您拥有非常细粒度的控制,而不必列出每个文件。唯一需要维护的是排除文件,更改其中的内容根本不需要更改构建脚本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-14
    • 1970-01-01
    • 2018-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-16
    相关资源
    最近更新 更多