【发布时间】:2011-10-04 13:11:10
【问题描述】:
在工作中,我们目前使用以下部署策略:
- 运行批处理脚本以清除所有 ASP.NET 临时文件
- 运行一个批处理脚本,将每个 ASPX 文件编译成它自己的 DLL(ASP.NET Web 站点,而不是 Web 应用程序)
- 将每个单独更改的文件(ASPX 和 DLL)复制到实时服务器上的相应文件夹。
- 打开
Deployment Scripts文件夹,在生产数据库上手动运行每个 SQL 脚本(表修改、存储过程等)。 - 睡觉前做个祷告(也许是在开玩笑)
- 第二天早上首先进行测试,并希望获得最好的结果 - 修复出现的错误。
过去我们被咬过几次,因为有人会忘记运行脚本,或者认为他们运行了某些东西但没有运行,或者因为有两个文件(一个在 Sprocs文件夹和 [ModuleName] 相关文件夹中的一个)或复制了错误的 DLL(因为它们可以具有相同的名称,例如由 .NET 生成的随机字母数字)。
这对我来说似乎效率很低 - 很多手动操作并且很容易出错。由于所有手动步骤并记住需要复制哪些文件,需要复制它们的位置,开发人员有时可能需要 2-3 小时或更长时间来执行部署(我们在深夜进行,例如午夜左右) ,需要运行哪些脚本,确保脚本以正确的顺序运行等。
得到比花两个小时复制和粘贴单个 ASPX 页面、DLL、图像、样式表等并手动运行大约 30 多个 SQL 脚本更简单。我们使用 SVN 作为我们的源代码控制系统(主要只是用于更新/提交,但我们不做分支)但没有单元测试或测试策略。是否有某种工具可以帮助我们使部署更加顺畅?
【问题讨论】:
标签: asp.net deployment