【问题标题】:Build once feasible with build server?使用构建服务器构建一次可行吗?
【发布时间】:2013-03-01 19:58:48
【问题描述】:

我一直在阅读有关构建一次然后为每个环境进行配置的信息。例如,这里有一些想法如何做到这一点:Build once and deploy to multiple environments with msdeploy & Visual Studio 2012

我的问题是,这如何与您的构建服务器一起工作?有没有人启动过一个部署到多个环境的构建?我希望每个环境都有自己的构建定义和自己的规则/时间表。在那种情况下,构建一次真的可行吗?我觉得我错过了什么......

【问题讨论】:

    标签: msbuild msdeploy


    【解决方案1】:

    我使用基于 MSDeploy 和 Web Publishing Pipeline 的构建管道,但这不是 MSBuild 脚本直接支持的方案。

    我使用的基本前提是在构建的第一个“阶段”构建一个包,然后部署到各种环境中,直到它投入生产。您需要研究构建服务器如何处理交叉构建“工件”。

    另一个问题是将包部署到发布配置文件是not something that's currently supported。但是,您始终可以选择从命令行部署包(或者甚至将其上传给可以通过 IIS 导入的管理员)。

    这些资源(免责声明,包括指向我自己的博客和代码的链接)应该会有所帮助:

    【讨论】:

      【解决方案2】:

      我一直这样做。 为每个环境构建一次并重新配置。我不使用 MSdeploy。我确实使用 xdt 模板化转换,这些转换在部署时与环境属性相结合。构建会创建一个可以配置的包。

      这消除了在部署时对 Visual Studio 的需求。我可以开始部署到多个环境。我还可以在部署时支持新的/更改的环境。您可以使用 msbuild、ctt 工具 http://ctt.codeplex.com/documentation 轻松实现此目的 以及一个令牌转换过程,例如 msbuild 扩展包中的去令牌化任务。如果您构建此过程,您可以托管在 CI 工具(TFS,但 id 为 Teamcity)以及手动/cmdline/powershell 中。

      【讨论】:

      • +1 用于您的示例和 CTT(我不知道您可以单独获得它)。目前我正在寻找一种更内置的方式来完成这一切,但如果我一直遇到死胡同,这可能是一个不错的选择。
      • 请记住,MSDeploy 来自与 VS 分开安装的命令行。 VS 添加的只是 MSBuild 脚本。
      • ctt 还允许您使用相同的方法来配置具有配置文件的任何类型的应用程序,而不仅仅是 Web 应用程序。
      • 其实MSDeploy可以将文件夹部署到文件夹,不仅仅是web应用,而且parameter system不仅仅是xml文件。此外,它可以部署 SQL 脚本并将服务器 ACL 设置为部署的一部分,即使是非管理员部署用户也是如此。如果你还没有做过,你应该认真检查一下。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-03
      • 2020-03-02
      相关资源
      最近更新 更多