我正在寻找信息,使我的Windows窗体应用程序自我更新

时间:2010-03-27 18:30:36

标签: vb.net winforms self-updating

我想让Windows窗体应用在启动时自我更新。我在哪里可以找到有关它的好信息?

我正在使用Visual Studio 2008 VB.NET。


我喜欢点击一次的方法。使用此应用程序,我有一个访问数据库作为后端数据存储区。当应用程序自我更新时,我如何确定mdb文件没有被覆盖?

如果mdb是对mdb文件的更改但没有丢失数据,那么自行升级mdb的最佳方法是什么?

3 个答案:

答案 0 :(得分:3)

如果使用ClickOnce进行部署,则可以免费获得此功能。我对此没有任何经验,但我可以指向article

答案 1 :(得分:0)

我一直使用Click Once多年来一直没有什么问题。

答案 2 :(得分:0)

我已经编写了一个自定义自动更新程序,基本上,它的工作方式是:

整个申请基本上是3部分:

  1. 一个启动器.exe,它基本上就像一个引导程序
  2. 启动器.exe具有嵌入式.exe资源,如果启动器.exe本身需要更新,则使用该资源
  3. 应用程序dll的
  4. 启动应用程序时,启动器应用程序启动并通过webservices检查dll是否为最新版本。如果不是,则将它们下载到临时目录,然后确保校验和都正确并用新的覆盖现有应用程序库。然后加载应用程序的核心程序集并通过反射调用“运行”方法。

    现在,在我们的应用程序中,我们有时需要更新启动器本身,我们实现此目的的方法是在启动器.exe资源中嵌入.exe。如果启动程序检测到有新的启动程序.exe可用,则将其下载到临时目录,然后提取.exe并启动它。这个提取的.exe只关闭启动程序进程,将新的启动程序.exe复制到旧启动程序上,然后再次启动启动程序进程。