【问题标题】:Application that looks up for a newer version查找更新版本的应用程序
【发布时间】:2013-05-07 15:12:31
【问题描述】:

我目前正在为我的 C++ 应用程序 VS2010 开发安装程序。 我想集成我在其他应用程序上看到的功能。该功能是它检查更新的版本,如果有更新的版本,它会提示用户下载它。是否有任何现成的组件可以帮助我完成这项任务?关于我应该看什么的任何建议?

【问题讨论】:

    标签: c++ installation windows-installer


    【解决方案1】:
    1. 为自己购买一个每月不到 10 美元的廉价托管网络服务器
    2. 在上面创建一个文件 - 可以称之为“myappname.version”
    3. 在其中放入版本信息,一些要显示给用户的文本以及告诉用户从哪里获取新版本的 URL
    4. 在您的应用中,发出 http 请求以从您的网站获取该文件 - 查看内置的 WinAPI URLOpenStream 或 URLDownloadToFile
    5. 根据您下载的内容检查当前应用版本
    6. 如果有更新的版本可用,请告诉用户

    【讨论】:

      【解决方案2】:

      Advanced Installer,专业版,有一个built-in updater,可以满足您的需求。 This diagram 解释了它是如何工作的。您可以免费试用 30 天,只要确保您创建的是专业项目类型或更高版本。

      您可以使用快捷方式、计划任务或integrate it directly in your application 运行更新程序。

      关于来自 WiX 工具集的更新程序,这有点不同。这是对安装程序包的更新程序支持,因此如果用户下载了您的应用程序,但在一个月后安装了它,同时您发布了新版本,它将能够自动获取您发布的应用程序并安装它。

      这也可以通过高级安装程序完成,您需要在“更新程序”页面中勾选一个名为“安装前检查更新”的复选框。

      【讨论】:

        【解决方案3】:

        在 WiX 工具集 v3.7+ 中,引导程序(又名:Burn)具有检测更新可用并安装该更新而不是当前运行的捆绑包的机制。这是很多细节,但您可以在WiX toolset 的 wix37 或更高版本的分支中的 src\Setup\WixBA\UpdateViewModel.cs 中查看回调以及它们是如何实现的。

        这是一个非常完整的例子。

        【讨论】:

          【解决方案4】:

          在 NSIS 中没有现成的组件(因为有很多变量)。

          但是 NSIS 有几个很棒的插件用于处理互联网(下载)和文件(修补),因此可以为自定义下载器/更新器编写简单的脚本。

          【讨论】:

            猜你喜欢
            • 2013-01-21
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-01-17
            • 2015-09-20
            相关资源
            最近更新 更多