我正在寻找一种用于部署ASP.NET MVC3应用程序的良好部署策略。我想象的是,每个部署都是对源管理系统的某种提交,因为部署工具可以自动执行以下操作:
1)生成部署包(提交)后,工具会 记住我的Web.Config文件的状态,文件夹的状态 包含新数据库的自动生成脚本已更改,状态为 批处理文件的文件夹,其中包含要在其上运行的新任务 服务器,指定ISS设置更改的文件状态等
2)当我下次构建一个包时,该工具只能知道 打包新脚本文件,web.config更改,新批处理文件, 自我上一个软件包以来的新ISS设置
3)将包应用到我的Web应用程序
我开始研究MS Deploy,但它似乎只做了3号。我一直在寻找能够实现我想象的应用程序或者将SMS和MS部署结合起来的策略。我希望有人已经解决了我觉得我在这里遇到的问题。我的最后一招当然是再次构建工具,这将是我的最后手段。
答案 0 :(得分:1)
您是否在Visual Studio中的Build下使用了Web Deploy和“发布”功能?
您可以设置选项,例如将以前的文件留在服务器上。
您的web.config文件,是指服务器上其他地方已经存在的主要文件还是其中一个?您的web.config文件应该从项目复制到服务器,还是在运行本地vs服务器时有不同的设置?如果是这样,请查看使用转换来修改web.config。
答案 1 :(得分:1)
对您而言,这只是#1的部分答案,但我们在我们喜欢的迁移工具上找了很长时间......我们最终找到了Migrator.Net:http://code.google.com/p/migratordotnet/
执行此操作,您可以将数据库迁移转换为批处理命令
答案 2 :(得分:1)
您使用的是Team Foundation Server吗?如果是这样,TFS附带了自动化构建的工具(包括标记代码,运行单元测试,部署等等。)看看http://msdn.microsoft.com/en-us/library/ms181710(v=vs.80).aspx
TFS不是很容易配置和开始,但如果你已经在使用TFS它是免费的。
如果您不使用TFS,请查找NAnt或TeamCity等持续集成工具。