2013-03-01 33 views
3

我一直在阅读关于构建一次,然后配置每个环境。例如,这里有一些想法如何做到这一点:Build once and deploy to multiple environments with msdeploy & Visual Studio 2012使用构建服务器构建一次可行吗?

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

回答

3

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

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

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

这些资源(其中,免责声明,包含指向自己的博客和代码)应该有所帮助:

3

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

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

+0

+1为你的例子和CTT(我不知道你可以得到它的独立)。目前我正在寻找更多的内置方式来完成所有这些工作,但是如果我继续打到死角,这可能是一个不错的选择。 – 2013-03-04 17:54:05

+0

请记住,MSDeploy包含与VS分开安装的命令行。 VS的增加只是MSBuild脚本。 – 2013-03-05 06:14:50

+0

ctt也可让您使用相同的方法来配置任何类型的具有配置文件的应用程序,而不仅仅是Web应用程序。 – 2013-03-05 07:40:47