【发布时间】:2015-09-28 10:29:15
【问题描述】:
我使用 Visual Studio 2010 构建了一个应用程序,并使用 Visual Studio 安装程序进行了设置。现在我想要的是,只要将 exe 安装在客户端计算机上,它就应该定期检查更新。 有什么建议么 。请帮忙。
【问题讨论】:
标签: visual-studio-2010 installation
我使用 Visual Studio 2010 构建了一个应用程序,并使用 Visual Studio 安装程序进行了设置。现在我想要的是,只要将 exe 安装在客户端计算机上,它就应该定期检查更新。 有什么建议么 。请帮忙。
【问题讨论】:
标签: visual-studio-2010 installation
根据我的经验,大多数人在应用程序本身中执行此操作,因此当它运行时它会检查您的网站是否有更新。
基本上,您需要一个 Web 服务调用,您的应用会将您的设置的 ProductCode 和版本、您的 MSI 文件构建传递给该调用。在您的网络主机上,您需要一个数据库(或 Xml 文件),其中包含有关最新可用版本及其下载位置的信息,以便您可以将该信息返回到您的应用程序,假设最新版本高于正在运行的版本。
您在 Visual Studio 中,因此您构建了一个 RemovePreviousVersions 更新的 MSI,这就是您下载和安装的内容。如果安装需要管理员权限并且您的应用程序没有提升,那么您将启动一个带有提升清单的外部 exe 来安装它。
【讨论】:
我刚刚完成了一个与此类似的项目,但我没有使用 Visual Studio 安装程序库,而是创建了一个运行 10 分钟循环的 Windows 服务,当服务检测到新版本时,它会终止正在运行的应用程序并执行下载并将新文件复制到应用程序文件夹中。
您需要考虑一些事项; 1) 一种优雅地警告然后关闭应用程序的方法,这样用户就不会因为强制终止应用程序而生气。 2) 用于存储升级的应用程序文件的 Web 位置,以及用于宣传可用应用程序版本的 Web 服务。 3) 一种对升级进行排队的方法,以便在发布新版本时不会立即升级每个客户端(向您的 Web 服务器充斥着升级请求和下载)。
Adobe 使用此技术升级和安装 Acrobat Reader 和 Flash 等应用程序。
【讨论】: