好吧,这就是事情。如何避免混乱的ASP.NET Web应用程序部署?
我正在开发一个现有的(它开始是一个ASP经典应用程序,所以你可以想象:P)ASP.NET 4.0和SQLServer 2005下的Web应用程序。我们有4个开发人员使用本地SQL Server 2005 Express实例,具有源代码和Visual Studio数据库项目
此web应用程序有几个“Universe”(我们称之为)。每个Universe都有自己的数据库(当前位于同一台服务器上),但它们都共享相同的模式(表,sprocs等)和相同的源代码/站点代码。
所以手动部署真的很烦人,因为我必须部署源代码,然后在每个数据库上手动运行sql脚本。我知道手动部署会导致问题,所以我正在寻找一种自动化的方法。
我们最近创建了一个Visual Studio数据库项目来管理模式并生成具有不同目标的差异模式脚本。
我不知道如何把碎片一起
我想:
- 有办法做一个“同步”部署到目标服务器(幸运的是我有完整的RDC访问服务器,所以我可以根据需要安装东西)。对于“同步”部署,我的意思是我不想完全部署整个应用程序,因为它有很多文件,我只想部署这些新的或已更改的文件。
- 为每个数据库目标生成diff-sql更新脚本,并将其组合为1个脚本。为此,我应该在某处列出一些数据库名称。
- 复制站点文件并以简单和自动的方式执行生成的sql脚本。
我读过关于MSBuild,MS WebDeploy,NAnt等等。但我不知道从哪里开始,我真的想摆脱这种手动部署。
如果有比我列举的更好更简单的方法,我会很乐意阅读您的选项。
我知道这不是一个非常具体的问题,但我已经搜索了很多关于它,似乎我无法弄清楚如何做到这一点。我从未使用任何自动化工具进行部署。
任何帮助将是非常赞赏,
谢谢大家,
问候
从来没有听说过它,但它似乎我有。每个“宇宙”是完全孤立的,彼此之间没有互动。无论如何,这些链接都非常合理,以及如何建立多租户结构。我已经有了结构,我只需要一个自动部署的方式。谢谢anwyay。 – emzero 2010-04-28 00:48:26
好吧,实际上我们有一个类似于选项1的结构。由于策略的原因,我们需要每个客户端都有一个独立的数据库,因为他们不想与其他客户端共享同一个数据库。但是我的问题更具体到应用程序代码和数据库脚本的自动部署过程。如何将所有内容统一到自动化过程中。 – emzero 2010-04-28 06:38:59