我听说过很多部署asp.net应用程序的策略,但我不太确定哪种策略最符合我的需求。
我有一个asp.net 4应用程序。我有单独的开发/登台/生产环境(不同的web.configs)。我还需要管理sql server的更改。我可能有超过1个数据库服务器和超过1个应用服务器来推动更改。理想情况下,我想按一个按钮说“部署到暂存”或“部署到生产”,它会将代码/ db / config文件部署到正确的服务器上。理想情况下,我希望在发布错误的情况下还有一些回滚过程。
我听过xcopy / robocopy策略,MSDeploy(现在称为Web Deploy?)策略,以及构建要部署的MSI包。
其中哪一项似乎最适合此类需求?
答案 0 :(得分:0)
方法#1 如果你有时间花,我建议使用CruiseControl.NET。至少有一段时间,stackoverflow团队将其用于部署。
方法#2 就复制策略而言,我建议在应用程序和媒体上使用7zip和ftp的组合。 7Zip很不错,因为它允许您排除文件类型(web.config),文件夹和文件类型,并允许您以不同方式压缩不同的文件。例如,压缩PNG没有意义。请注意,每次都会执行完整部署。所以,如果你有大型媒体文件夹,我会单独处理它们。
至于数据库,我相信使用Redgate的SQL Compare会有好运。它们是商业应用,但它们非常非常好。他们在stackoverflow播客上被多次提到。
对分段的部署将如下所示:
这是我使用的方法。我没有花时间去掌握CruiseControl.NET,但是当我这样做时,我可能会使用它,至少对于较大的应用程序。这不是一键式部署,但它允许每天进行多次高效部署(因为我已经连续几年不停地工作)。 7zip方法很不错,因为一旦掌握了命令文件,就可以将它们复制并快速用于新项目。