我需要有关如何更新我的应用程序的建议。表单应用程序将被放置在驱动器上,以便许多用户全天不停地使用。有什么方法可以在程序使用时更新程序或允许更新程序?如果我更新程序并为其重新创建一个新的构建,那么尝试在旧应用程序上复制粘贴将不会让我,如果其他人打开它。对任何建议开放。
答案 0 :(得分:2)
您可以使用nUpdate这个免费的开源.NET库来更新同样关心更新包安全性的应用程序,这是一个重要的事实。许多更新例程不会验证他们下载的软件包,如果更新被恶意软件替换,可能会导致严重损坏(就像前一段时间发生在puush-service中一样)。
nUpdate专为Windows窗体应用程序设计。 目前它仍在不断改进,WPF应用程序的支持很快就会加入,但目前版本非常稳定。
答案 1 :(得分:0)
选项1:使用ClickOnce部署应用,并将其设置为每次运行时检查更新。
ClickOnce:
在项目设置中,单击“发布”选项卡。
从这里,您可以配置应用程序发布到的位置,以及是否应该仅在线安装或提供。
完成所有配置后,您将使用“立即发布”按钮编译并将更新上载到发布位置。每次用户打开应用程序时,它都会检查您所在位置的更新。要让您的应用以编程方式检查更新,请使用此MSDN链接中的代码 - https://msdn.microsoft.com/en-us/library/ms404263.aspx
您应该注意,用户将不再直接运行exe,并且您不会将您的exe复制到发布文件夹。您的用户必须单击扩展名为.application的文件。用户可以创建此.application文件的快捷方式,以放置在他们的桌面上或任何他们想要的位置。
另请注意,如果使用ClickOnce并发布了错误的版本(例如有错误),那么您的用户可以恢复到以前的版本,以便他们可以在修复错误时继续使用该应用。您的用户还可以选择跳过更新,以便您通知他们永远不会跳过更新。
选项2:创建发布主应用的应用
我承认这个答案不是一个好方法
您可以创建另一个exe来发布主exe。发布exe将简单地尝试将新的exe复制到旧的exe上并继续尝试直到它成功。当程序的所有实例都终止时,它将会成功。
选项3:使用数据库
让您的应用检查指示更新可用的数据库值。在数据库值设置为可用更新时,提示用户使用该应用程序关闭并且不允许其他实例启动。