新的UWP和Win32应用程序分发模型

自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应用中心。这让你可以为应用程序设置分发组

  • 发表于:
  • 本文为 InfoQ 中文站特供稿件
  • 首发地址http://www.infoq.com/cn/news/2018/08/UWP-Application-Distribution
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券