我有几个使用类似 cms 框架的 .net Web 应用程序。当我向这个核心框架添加新功能时,我希望每个应用程序都使用此功能进行更新。所以基本上我需要执行以下步骤:
我阅读了 CruiseControl 和其他持续集成工具,它们的功能与我需要的非常相似。问题是他们使用推送式更新,以便集成服务器构建源代码,然后将文件复制到生产服务器。我不能使用这种方法,因为我的客户不能让我访问他们的生产服务器。所以我需要的是在 IIS 管理器或其他任何地方有一个“更新”按钮,以便客户端可以单击它并从更新服务器中提取数据。有谁知道是否有解决方案来实现这一目标?
谢谢
最佳答案
我采用的方法是创建一个脚本,从 git 中提取最新的部署版本,停止 IIS,复制新版本,启动 IIS。它非常粗糙,但如果你的 git 存储库中唯一的东西是最新的可部署版本,它就可以工作。
我什至在 Visual Studio 中设置了发布按钮以复制到我的本地 git 部署存储库。然后我只是从我的开发机器推送,并在我的目标 Web 服务器上运行我的部署脚本,它拉取最新版本。
您问题的 SQL 更新脚本部分很有趣。听起来您需要类似于 Rails 中的数据库迁移。这不是我必须处理的事情,但我会在这里指出:http://www.infoq.com/news/2009/01/migrations_dotnet
关于.NET Web 应用程序自动更新拉式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3334024/