流行的应用程序如何更新和安装?
Posted
技术标签:
【中文标题】流行的应用程序如何更新和安装?【英文标题】:How do popular applications update and install? 【发布时间】:2017-06-07 03:56:20 【问题描述】:我知道这个问题已经被问过很多次了,但大多数时候我都找不到我想要的答案。
流行的应用程序如何自我更新? 我发现了一些更新应用程序的库,但大多数情况下它们只是替换了所有应用程序文件。这样我的更新程序每次都需要下载大约 200mb。
ClickOnce 也被大量使用,但我认为这是一种丑陋的更新和安装方式,因为 GUI 不是很漂亮,您甚至无法指定应用程序的安装位置。
我知道有些应用程序也会替换安装程序并运行新的安装程序来卸载旧版本并安装新的安装程序,但这不可能是正确的方式......
那么 Mobirise、Discord 或 Teamspeak 等程序如何自我更新?
【问题讨论】:
就像你说的 - 替换文件。如果它是二进制文件,我真的看不到用新版本完全替换它们的替代方法。你的应用程序中真的有 200mb 的编译二进制文件吗?把它切成小块不是更明智吗?这将使事情更容易更新。 不,你说得对。 Release 文件夹的大小约为 20mb,但应用程序将以何种方式安装?那么文件夹结构以后会是什么样子呢? 您可能是目前唯一如何构建它的人。一种想法是将应用程序的关注点与 DLL 分开。假设您有一个仅将 .rtf 转换为 .pdf 的类 - 为什么不将其编译为自己的 dll,让主要的二进制文件使用它。如果明天你决定将 rtf 重构为 pdf 方法,你可以简单地更新那个特定的 dll(只要你保持签名结构) 这是个好主意,但我总觉得必须有更好、更专业的方式,就像其他公司那样。你知道我的意思吗? 【参考方案1】:您可以将应用程序设计为patchable。 修补在 Windows 世界中不是热门口味。
【讨论】:
因此可以有一个通用的 setup.exe 或 setup.msi 来安装应用程序并将所有 dll 等放入应用程序文件夹,并在其中有另一个应用程序来更新应用程序中的主要应用程序文件文件夹 ?所以我有一个预制的应用程序文件夹,就像我们在服务器上的用户电脑上创建的一样?【参考方案2】:我有一个 POS 解决方案(C#),在 4 个商店工作。 这就是我为提供客户端更新所做的工作。 使用 Google Drive 上传安装程序文件 + 一个提及安装程序版本的文本文件,每次程序启动时一旦上传,它会从 Google Drive 下载版本文本文件,如果它与客户端拥有的软件的当前版本不匹配, Messagebox 提示有更新的版本可用。客户端然后可以单击升级,它将下载安装程序文件,一旦下载的软件完全退出,调用将运行安装程序文件的 python 脚本。 这不是最好的方法,但它很有效,因为 Google Drive 有自己的文件版本历史记录,这让我可以轻松跟踪我发送的更新。 希望我有所帮助
【讨论】:
这就是我之前提到的想法,但是 setup.exe 或 setup.msi 是否包含项目中使用的所有资源和 dll?这也是一种丑陋的方式,因为用户必须再次点击整个安装 是的,msi 文件包含所有资源。不,用户不必点击整个过程,因为一旦从 python 调用安装程序,您可以使用'-i'将其设置为通过 python 自动安装以上是关于流行的应用程序如何更新和安装?的主要内容,如果未能解决你的问题,请参考以下文章