提出更好的ASP.NET部署策略

Way*_*ina 10 asp.net deployment

在工作中,我们目前使用以下部署策略:

  • 运行批处理脚本以清除所有临时ASP.NET文件
  • 运行批处理脚本,将每个 ASPX文件编译为自己的DLL(ASP.NET Web 站点,而不是Web应用程序)
  • 将每个单独更改的文件(ASPX和DLL)复制到实时服务器上的相应文件夹.
  • 打开Deployment Scripts文件夹,在生产数据库上手动运行每个SQL脚本(表修改,存储过程等).
  • 在睡觉前说一个祷告(或许在这个上开玩笑)
  • 第二天早上测试第一件事,并希望最好的 - 修复它们出现时的错误.

我们过去曾经被咬了几次因为有人会忘记运行一个脚本,或者认为他们运行了一些东西但没有,或者覆盖了与某个模块相关的sproc,因为有两个文件(一个在Sprocs文件夹中,一个在[ModuleName]相关文件夹中)或复制错误的DLL(因为它们可以使用与.NET生成的随机字母数字相同的名称).

这对我来说似乎非常低效 - 很多手动的东西,非常容易出错.由于所有手动步骤并记住需要复制的文件,需要复制的位置,开发人员有时需要2-3小时才能执行部署(我们会在深夜,例如午夜左右进行) ,需要运行哪些脚本,确保脚本以正确的顺序运行,等等.

必须一个更简单的方法,而不是花两个小时来复制和粘贴单个ASPX页面,DLL,图像,样式表等,并手动运行30多个SQL脚本.我们使用SVN作为我们的源代码控制系统(主要仅用于更新/提交,但我们不进行分支),但没有单元测试或测试策略.是否有某种工具可以帮助我们使部署更顺畅?

mar*_*set 8

我没有完成所有这些,但从Troy Hunt 部署错误的系列可能是一个值得关注的好地方.

系列中讨论的要点:

  • 配置转换
  • 构建自动化
  • 持续集成