如何从多个服务器更新程序和数据库结构

时间:2011-05-27 10:40:22

标签: clickonce

我正在开发一个使用MySQL数据库(本地或远程)的.NET(C#和VB.NET)(Framework 4.0)应用程序。

我正在使用InnoSetup进行安装,其形式为:

  • 我下载了InnoSetup创建的存档安装程序(存档.EXE)。
  • 我执行存档,并检查它是否存在于Framework 4.0中。如果它不存在,脚本将下载存档以进行安装。
  • 安装Framework 4.0后,我从自己的服务器下载MySQL的安装程序。
  • 我安装了我的程序。

首次执行程序时,我安装数据库,然后通过SQL脚本输入必要的数据。

我的更新有问题,因为我需要:

  • 有多条路线可以下载更新(多个URL与Linux / Apache服务器),以获得平衡和可用性。
  • 更新程序的档案(.exe,.dll,images,...)和数据库的新字段(ALTER TABLE语句和一些INSERT)。

我正在考虑开发一个自己的更新程序,但如果我可以使用一些可用的解决方案,我不想写它。有人可以推荐一些可用的解决方案吗我一直在咨询以下产品,但我没有看到它们中的任何一个支持或多个URL或更新数据库:

对于数据库的更新,我发现只有一个解决方案:Autodbupdater

谢谢

1 个答案:

答案 0 :(得分:1)

NAppUpdate我写的一个开源解决方案,以满足我们对WinForms和WPF应用程序的特定需求。一般的想法是尽可能以最低的开销获得最大的灵活性。我认为它提供了您所需的灵活性:

它可以让您确定要执行的任务以及在什么条件下制定规则。存在对任何更新源(web,BitTorrent等)的支持,以及任何提要格式 - 任何未实现的内容,您都可以自己编写。

通常,您需要做的就是将NAppUpdate添加到您的项目(一个小DLL),实现您自己的IUpdateSource(能够从多个源下载),使用现有的FileUpdateTask并滚动您自己的DbUpdateTask来执行DB更新。

支持冷更新(需要重启应用程序),并自动完成文件操作,除非为任务指定了“热交换”。

http://www.code972.com/blog/2010/08/nappupdate-application-auto-update-framework-for-dotnet/http://groups.google.com/group/nappupdate邮件列表中的更多详细信息。

代码位于http://github.com/synhershko/NAppUpdate(根据Apache 2.0许可证授权)