针对Prep.Net-MVC的持续部署方法

时间:2016-01-14 18:16:15

标签: asp.net-mvc release-management continuous-deployment continuous-delivery automated-deployment

远程客户的政策不允许我从我的开发环境直接发布到他们的服务器。我远程进入环境并将发布的工件(Asp.Net-MVC)复制到测试环境。目前,不同环境(构建/测试/暂存/生产)之间的部署过程是手动完成的,这非常耗时且容易出错。

我知道有些工具已经存在,并且看了几个CI& CD解决方案,但很多看起来像我现在想要的东西。看看 Jenkins,Octopus,MSDeply,PSDeploy,Robocopy 以及其他一些人,但现在我不确定要走哪条路。阅读我最终想要达到的持续部署方法,因为我真的试图避免重新发明轮子并编写我自己的自定义部署工具,这是一个令人讨厌的习惯,我试图打破给我很多帽子我必须穿。

有关如何在独立服务器上自动执行此过程的任何建议?在这个阶段,重点是文件的移动而不是数据库的迁移。

由于

2 个答案:

答案 0 :(得分:2)

CI服务器在其核心只是一个任务运行者。 Jenkins是一个很棒的开源CI服务器,有许多插件。

对于简单的Web部署,您只需要下载源代码,使用MSBuild执行构建,然后执行deployment using a publish profile

MSDeploy将在幕后使用,但你可以让它只是复制文件。实际上,构建和部署可以通过传入适当的构建参数在一个步骤中完成。

msbuild someproject.sln /p:DeployOnBuild=true /p:PublishProfile=Prod

Jenkins可以设置为按需执行此构建,或者在签入某些内容时执行此构建。

即使是没有经验的人,也应该能够在一天内完成并运行。

答案 1 :(得分:0)

为什么不使用发布管理?它是一个通过其模板连接到tfs的微软工具。 您需要使用设置为CI的构建服务器创建构建定义,这意味着每次签入都会将代码上载到发布管理中所需的环境,您可以创建批准步骤,其中只会上载已批准的构建。要在没有上传项目的情况下启用开发工作和检查,只需创建2个分支HEAD和DEV,并将您的ci监听器(源文件夹)仅放在HEAD上。当开发人员将从DEV合并到HEAD并签入时,将上传文件。