警告
ms-appinstaller:自 2023 年 12 月起,URI 协议默认处于禁用状态。 在应用安装程序版本 1.21.3421.0 及更高版本中,Microsoft禁用了使用者设备上的 ms-appinstaller:?source= 协议处理程序,以响应安全问题。 本文中所述的一键式浏览器触发安装不适用于大多数用户,无需 IT 管理员干预。
对于企业环境: IT 管理员可以通过将组策略 EnableMSAppInstallerProtocol 设置为 Enabled 来重新启用协议。 请参阅 策略 CSP - DesktopAppInstaller。
对于常规分发(非企业): 请改用以下替代方法之一:
- 发布到 Microsoft Store , 这是广泛分发的建议路径。 应用商店处理代码签名、更新和发现。
-
直接
.appinstaller文件下载 - 在 Web 服务器上托管.appinstaller文件并直接链接到该文件。 用户下载并双击该文件;不需要特殊协议。 请参阅 应用安装程序文件概述。
通常,应用需要在设备上本地可用,然后才能使用应用安装程序进行安装。 对于 Web 应用场景,这意味着用户必须从 Web 服务器下载应用包,然后才能使用应用安装程序进行安装。 这样做效率低下且浪费磁盘空间,这就是为什么应用安装程序现在内置了此功能来简化该过程。
应用安装程序可以直接从 Web 服务器安装应用。 当用户单击应用包托管的 Web 链接时,将自动调用应用安装程序。 然后,用户将进入应用安装程序中的应用信息视图,只需单击一下即可直接与应用互动。
直接应用安装仅在 Windows 10 Fall Creators Update 和更新中可用。 在 Windows 10 早期版本上的网页安装体验将支持早期版本的 Windows(可以追溯到 Windows 10 周年更新)。 这种体验不如直接应用安装那么流畅,但它对现有应用安装过程进行了重大改进。
注意
应用安装程序版本必须大于 1.0.12271.0 才能支持此功能,并且能够由 IT 专业人员(管理员)控制使用 ms-appinstaller URI(统一资源标识符)方案(协议)。 若要在网络中启动 ms-appinstaller,请将组策略 EnableMSAppInstallerProtocol (/windows/client-management/mdm/policy-csp-desktopappinstaller) 设置为启用(请参阅策略 CSP - DesktopAppInstaller)。 有关详细信息,请参阅从网页安装Windows 10应用。
协议激活方案
在此机制中,应用安装程序向操作系统注册协议激活方案。 当用户单击 Web 链接时,浏览器会与操作系统核实该链接注册的应用程序。 如果方案与应用安装程序指定的协议激活方案匹配,则会调用应用安装程序。 值得注意的是,这种机制是独立于浏览器的。 这对于网站管理员是有益的,例如,他们在将其合并到网页中时不需要考虑浏览器的差异。
协议激活方案的要求
- Web 服务器需要支持字节范围请求 (HTTP/1.1)
- 支持 HTTP/1.1 协议的服务器应支持字节范围请求
- Web 服务器需要了解Windows 10应用包内容类型
- 下面介绍如何将新内容类型声明为 Web 配置文件的一部分
如何在网页上启用此功能
想要在其网站上托管应用包的应用开发人员需要执行以下步骤:
在网页上引用应用包 URI 时,请使用应用安装程序注册到的激活方案 'ms-appinstaller:?source=' 作为其前缀。 有关详细信息,请参阅“MyApp 网页”示例。
<html>
<body>
<h1> MyApp Web Page </h1>
<a href="ms-appinstaller:?source=http://mywebservice.azureedge.net/HubApp.msix"> Install app package </a>
<a href="ms-appinstaller:?source=http://mywebservice.azureedge.net/HubAppBundle.msixbundle"> Install app bundle </a>
<a href="ms-appinstaller:?source=http://mywebservice.azureedge.net/HubAppSet.appinstaller"> Install related set </a>
</body>
</html>
注意
通过在指向 Windows 应用的链接或 AppInstaller 文件前添加 ms-appinstaller:?source='' ,客户端设备将启动桌面应用安装程序,其中包含与 Windows 应用相关的详细信息。 必须在 Web 服务器上配置 MIME 类型,因为此信息将与桌面应用安装程序共享,以显示文件类型及其文件类型关联。
需要为从您的网站共享的 Windows 应用和 AppInstaller 文件配置 MIME 类型。 通过包含 MIME 类型,桌面应用安装程序将快速识别文件关联,并通过后续步骤启动信息页面。 如果未包含,桌面应用安装程序必须确定对桌面应用安装程序解释信息和启动Windows应用安装程序的速度产生负面影响的文件关联。 在您的 Web 服务器上,唯一需要配置的 MIME 类型是将在您的网站上托管的文件类型。
如果 Windows 应用程序安装介质托管在文件共享上,并从网站链接到它,则无需在 Web 服务器上配置 MIME 类型。
| 文件扩展名 | MIME 类型 |
|---|---|
| .msix | application/msix |
| .appx | application/appx |
| .msixbundle | application/msixbundle |
| .appxbundle | application/appxbundle |
| .appinstaller | 应用程序/应用安装器 |
有关如何配置 MIME 类型的详细信息,请访问 从 IIS 服务器发布Windows 10应用。
为应用包签名
用户要安装应用,需要使用受信任的证书为应用包签名。 可以使用受信任的证书颁发机构(CA)中的证书(如 Azure 项目签名(以前受信任的签名))对应用包进行签名。 CA 信任的证书意味着Windows已经信任签名;不需要向设备分发证书。
如果改用自签名证书,则必须确保在安装应用之前将证书部署到每个目标设备上的 受信任人员 证书存储。 在 Windows 10 版本 2004 及更高版本以及 Windows 11 上,旁加载默认启用;而在更早的版本中,可能还需要启用 允许所有受信任的应用安装 策略。
要向企业内部员工部署应用,可以使用企业颁发的证书为应用签名。 需要注意的是,企业证书必须部署到要安装应用的设备上。 有关部署企业应用的详细信息,请参阅企业应用管理。
早期版本的 Windows 10 上的 Web 安装体验
在所有提供应用安装程序的 Windows 10 版本中(从周年更新开始),从浏览器调用应用安装程序都受支持。 但是,无需先下载包即可直接从 Web 安装的功能仅在 Windows 10 Fall Creators Update 上提供。
以前版本的 Windows 10(可用应用安装程序)的用户还可以通过应用安装程序利用Windows 10应用的 Web 安装,但会有不同的用户体验。 当用户单击 Web 链接时,应用安装程序将提示“下载”包,而不是“安装”。 下载后,应用安装程序将自动启动下载的包。 再次单击“安装”,应用即可使用。
尽管此流与 Windows 10 Fall Creators Update 上的直接安装不太无缝,但用户仍然可以快速与应用互动。 此外,使用此流程进行安装,用户无需担心应用包文件在驱动器中占用空间。 应用安装程序可以将包下载到其应用数据文件夹,并在不再需要时清除包,从而有效管理空间。
下面是应用安装程序的 Windows 10 Fall Creators 更新版本和旧版应用安装程序的快速比较:
| 应用安装程序,最新版本 | 应用安装程序,早期版本 |
|---|---|
| 应用安装程序在下载开始前显示应用信息 | 浏览器提示用户选择下载 |
| 应用安装程序执行下载 | 用户必须手动启动应用包 |
| 下载包后,应用安装程序会自动启动应用包 | 用户必须单击“安装”并手动启动应用包 |
| 应用安装程序将负责处置下载的包 | 用户必须手动删除下载的文件 |
在 Windows 10 Fall Creators Update 之前的版本中,应用安装程序无法直接从 Web 安装应用。 在这些版本中,应用安装程序只能安装本地可用的应用包。 相反,应用安装程序将下载包,并要求用户双击下载的包进行安装。
应用安装程序安全性
应用安装程序版本 1.24.1981 添加了以下安全措施:
- 互联网区域验证
- Microsoft SmartScreen 验证
互联网区域验证
在访问 ms-appinstaller URI 方案引用的域之前,应用安装程序将验证 IT 专业人员是否允许该域。 如果域受到限制,应用安装程序将向用户显示错误。
Microsoft SmartScreen 验证
如果允许ms-appinstaller URI 方案引用的域,则应用安装程序将使用 Microsoft SmartScreen 验证 URI。 信誉检查失败的 URI 将向用户显示错误。
有关详细信息,请参阅 应用安装程序安全功能 。