自 2005 年引入 ClickOnce 技术以来,.NET 就支持应用程序自动升级。在 ClickOnce 模型中,WinForms 和 WPF 应用程序在启动时会从预先配置好的位置查找新版本。但是,由于微软试图模仿 iOS 应用商店模型,所以,该模型未能延续到 UWP。
微软意识到,他们的大多数客户无法将其 LOB 应用程序发布到 Windows 商店,而且也不希望管理自己的“业务应用商店”,因此,他们一直在放宽之前的限制。首先,我们获得了“旁加载”应用程序的能力,无需使用应用商店。但是,需要手动升级应用。
从即将到来的 Windows 10 1804 版本开始,开发人员无需应用商店就可以分发自动升级应用程序了。这使用了和 ClickOnce 一样的模型,其中,会有两个新文件和 msix 包一起生成。你可以定制 index.html 页面来满足自己的需求,而.appinstaller 文件则扮演了和 ClickOnce 清单文件一样的角色。
要使用这项技术,你需要把应用程序的最小版本设置成 1804。你无法同时实现 Windows 旧版本支持和自动升级。
通过配置,应用程序可以在每次运行时检查更新,或者在后台定期检查。另外,今年晚些时候,你将能够把更新标记为强制性的,这适用于有安全漏洞或者与之交互的应用程序有不兼容变更的情况。
差异更新
ClickOnce 有个众所周知的问题,就是每次有新版本发布都需要下载整个应用程序。这个新模型支持差异更新。这应该可以把平常的安装时间减少到几秒钟。
WinForms/WPF
如果你正在把 Windows 应用程序打包项目应用于 Win32 应用程序(即 WinForms 或 WPF),那么它们也会支持这种类型的自动升级。
有限 / 差异发布
一个常见的需求是,在推向整个公司之前,把应用程序的某个版本面向有限数量的用户发布,这本质上是 Beta 测试。对此,我们有多个选项。
第一个选项比较简单,就是构建两个发布站点。用户可以选择从预览站点或主站安装。在这两个站点之间切换会涉及到在安装另一个站点的应用程序之前手动卸载应用程序。
第二个比较复杂,你可以修改 David Cooksey 的文章“使用ClickOnce 细分发布版本”中的指令。这种方式把应用程序清单隐藏在一个简单的站点后面,那样,它就可以在把用户指定的版本发给他们之前检查他们的证书。
第三个选项是使用Visual Studio 应用中心。这让你可以为应用程序设置分发组。
活动推荐:
2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。
评论