InfoQ Geekathon 大模型技术应用创新大赛 了解详情
写点什么

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

  • 2018-08-16
  • 本文字数:943 字

    阅读完需:约 3 分钟

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

查看英文原文: New UWP and Win32 Application Distribution Models

活动推荐:

2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。

2018-08-16 06:331307
用户头像

发布了 1008 篇内容, 共 361.7 次阅读, 收获喜欢 334 次。

关注

评论

发布
暂无评论
发现更多内容

深入分析CRM系统对现代企业的作用

Learun

区块链教育 丨 首批区块链专业新生正式入学

CECBC

区块链技术 区块链教育

架构1期第四周作业1-大型互联网系统技术梳理

道长

极客大学架构师训练营

JDK 中的栈竟然是这样实现的?

王磊

Java 数据结构和算法

用NOSql给高并发系统加速

架构师修行之路

nosql redis 分布式 微服务

开源=免费?

Learun

开源数据库这么香,为什么我们还要下功夫自研?

华为云开发者联盟

数据库 开源 数据

31道Java核心面试题,一次性打包送给你

小Q

Java 学习 程序员 架构 面试

Spring Cloud 微服务实践(7) - 日志

xiaoboey

kafka 微服务 Spring Cloud 日志 spring cloud stream

架构师训练营第1期第四周作业二

道长

极客大学架构师训练营

从联想ThinkStation工作站,窥见工具文明的新纪元

脑极体

做好分库分表其实很难之二

架构师修行之路

微服务 分库分表

建筑行业区块链应用场景是怎样的

CECBC

区块链 行业资讯

架构师作业第三周学习总结

Wee权

从构建小系统到架构分布式大系统,Spring Boot2的精髓全在这里了

Java架构之路

Java 程序员 面试 Spring Boot 编程语言

程序员去外包真的不可取吗?

Java架构师迁哥

架构师训练营第四周作业

郎哲158

架构师训练营第三周作业

Wee权

Web前后端:如何分离,如何解耦?

华为云开发者联盟

大前端 后端 开发

PyFlink + 区块链?揭秘行业领头企业 BTC.com 如何实现实时计算

Apache Flink

flink

光大银行刘淼:基于华为云GaussDB(DWS) 数据仓库创新实践

华为云开发者联盟

数据仓库 数据 huawei

EffectiveJava读书笔记-01-对象创建与销毁

wander

读书笔记 编程开发

来不及解释了,快上车!力软快速开发平台,助力企业搭乘万物互联的顺风车

Learun

区块链是一个不知道要解决什么问题的解决方案吗?

CECBC

比特币 区块链 银行

架构师训练营第四章 系统架构总结

郎哲158

关于国际化语言 Intl

西贝

Java 大前端 国际化 格式化

“海外同步优惠”与“中国专享折扣”十大必败榜抢先放送

爱极客侠

Java程序员月薪多少K才能在北上广买得起房?

Java架构之路

Java 程序员 编程语言

spring-boot-route(十)多数据源切换

Java旅途

Java Spring Boot

Nacos-技术专题-配置中心实现

洛神灬殇

手把手教你AspNetCore WebApi:Serilog(日志)

AI代笔

ASP.NET Core web api serilog

  • 扫码添加小助手
    领取最新资料包
新的UWP和Win32应用程序分发模型_.NET_Jonathan Allen_InfoQ精选文章