本地持续部署方法 Asp.Net-MVC

Continuous Deployment Approach for on premiss Asp.Net-MVC

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

我知道有一些工具已经存在并研究了一些 CI 和 CD 解决方案,但对于我目前想要的东西来说,很多看起来都有些矫枉过正。查看了 Jenkins、Octopus、MSDeply、PSDeploy、Robocopy 等,但现在我不确定该走哪条路。阅读持续部署方法,这是我最终想要达到的目标,因为我真的试图避免重新发明轮子并编写我自己的自定义部署工具,鉴于我必须戴上许多帽子,这是一个我试图打破的讨厌习惯穿

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

谢谢

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

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

MSDeploy 将在后台使用,但您可以让它只复制文件。构建和部署实际上可以通过传递适当的构建参数一步完成。

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

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

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

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