【问题标题】:What are ways to update a windows form application?有哪些方法可以更新 Windows 窗体应用程序?
【发布时间】:2016-05-20 18:17:49
【问题描述】:

我需要有关如何更新我的应用程序的建议。表单应用程序将被放置在一个驱动器上,供许多用户整天不间断地使用。有哪些方法可以更新程序或允许在使用程序时对其进行更新?如果我更新程序并为它重新创建一个新版本,如果其他人打开它,尝试在旧应用程序上复制粘贴将不会让我这样做。接受任何建议。

【问题讨论】:

  • 部署是一件棘手的事情。有很多不同的方法和产品可以解决这个问题。在我工作的公司,我只是通过 MSI 和 Active Directory 组策略在重新启动时进行部署。不幸的是,鉴于您所引用的原因,这是我们能做的最好的事情。

标签: vb.net winforms visual-studio windows-forms-designer


【解决方案1】:

选项 1: 使用 ClickOnce 部署应用程序并将其设置为在每次运行时检查更新。

点击一次:

在您的项目设置中,单击“发布”选项卡。

您可以在此处配置应用程序的发布位置以及是否应安装或仅在线提供。

完成所有配置后,您将使用“立即发布”按钮编译更新并将其上传到发布位置。每次您的用户打开应用程序时,它都会在您设置的位置检查更新。要让您的应用程序以编程方式检查更新,请使用此 MSDN 链接中的代码 - https://msdn.microsoft.com/en-us/library/ms404263.aspx

您应该注意,用户将不再直接运行 exe,并且您不会将 exe 复制到发布文件夹。您的用户必须单击扩展名为 .application 的文件。用户可以创建此 .application 文件的快捷方式,以放置在他们的桌面或任何他们想要的地方。

另外请注意,如果使用 ClickOnce 并且您发布了错误版本(例如存在错误),那么您的用户可以恢复到以前的版本,以便他们可以在您修复错误时继续使用该应用程序。您的用户还可以选择跳过更新,因此您需要通知他们永远不要跳过更新。

选项 2:创建一个发布您的主应用的应用

我承认这个答案不是一个好方法

您可以创建另一个 exe 来发布主 exe。发布 exe 将简单地尝试将新的 exe 复制到旧的 exe 上,并继续尝试直到成功。当程序的所有实例都终止时,它将成功。

选项 3:使用数据库
让您的应用程序检查指示更新可用的数据库值。当数据库值设置为可用更新时,提示使用该应用的用户关闭并且不允许其他实例启动。

【讨论】:

  • 为什么这被否决了。这是实现他想要的有效方式。
  • 这是否意味着该应用程序必须安装在每个用户的计算机/登录信用等上?
  • 不一定。您可以更改设置以仅允许它从发布的位置运行。您还可以选择安装它。两种方式都一样有效。
  • 不是反对者,但就目前而言,您在这里没有提供太多信息——这更像是一个评论。这将吸引反对票。
  • 这就是解决方案。当然,我可以将其编辑为有关如何使用 ClickOnce 的教程,但它非常简单,只需 Google 一下即可。我提供了解决方案,但我没有展示如何实现它。
【解决方案2】:

您可以使用nUpdate,一个免费的开源 .NET 库来更新应用程序,它还关心更新包的安全性,这是一个重要的事实。许多更新例程不会验证他们下载的包,如果更新被恶意软件替换,这可能会导致严重损坏(就像前段时间 puush-service 发生的那样)。

nUpdate 专为 Windows 窗体应用程序而设计。 目前还在改进中,很快就会添加对 WPF 应用程序的支持,但当前版本非常稳定。

【讨论】:

  • 我从来没有听说过这个。我会自己检查一下。感谢分享。
  • 似乎是很棒的更新库。不幸的是,这个项目似乎已经死了:(。
  • @thefiloe 目前,它已暂停,是的。不过,4.0.0 版即将推出。 ;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-21
  • 1970-01-01
  • 2012-04-25
相关资源
最近更新 更多