Msbuild 使用构建服务器一次构建是否可行?

Msbuild 使用构建服务器一次构建是否可行?,msbuild,msdeploy,Msbuild,Msdeploy,我一直在阅读关于构建一次然后为每个环境配置的内容。例如,以下是一些方法: 我的问题是,这如何与构建服务器协同工作?有人启动过一个部署到多个环境的构建吗?我希望每个环境都有自己的构建定义和自己的规则/时间表。在这种情况下,一次建造到底有多可行?我觉得我遗漏了一些东西…我使用的是基于MSDeploy和Web发布管道的构建管道,但MSBuild脚本不直接支持这种场景 我使用的基本前提是,在构建的第一个“阶段”构建包,然后将其部署到各种环境中,直到投入生产。构建服务器如何处理跨构建“工件”是您需要研究的

我一直在阅读关于构建一次然后为每个环境配置的内容。例如,以下是一些方法:


我的问题是,这如何与构建服务器协同工作?有人启动过一个部署到多个环境的构建吗?我希望每个环境都有自己的构建定义和自己的规则/时间表。在这种情况下,一次建造到底有多可行?我觉得我遗漏了一些东西…

我使用的是基于MSDeploy和Web发布管道的构建管道,但MSBuild脚本不直接支持这种场景

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

另一个问题是,将包部署到发布配置文件是不正确的。但是,您始终可以选择从命令行部署包(甚至可以将其上载到可以通过IIS导入的管理员)

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

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

这样就不需要在部署时使用VisualStudio。我可以开始部署到多个环境。我还可以在部署时支持新的/更改的环境。可以使用ctt工具msbuild轻松实现这一点
以及令牌转换过程,如msbuild扩展包中的detokenisation任务。如果您构建此流程,您可以在CI工具(TFS,但Teamcity的id为)以及手动/cmdline/powershell中托管。

+1用于您的示例和CTT(我不知道您可以单独获得它)。目前,我正在寻找一种更为内在的方式来完成这一切,但如果我一直遇到死胡同,这可能是一个不错的选择。请记住,MSDeploy在命令行中与VS分开安装。VS添加内容只是MSBuild scripts。ctt还允许您使用相同的方法配置任何类型的应用程序,这些应用程序具有配置文件,而不仅仅是web应用程序。实际上,MSDeploy可以部署文件夹对于文件夹,而不仅仅是web应用程序,它不仅仅是xml文件。此外,它还可以部署SQL脚本并将服务器ACL设置为部署的一部分,即使使用非管理员部署用户也是如此。如果你还没有完成,你应该认真检查一下。