本文介绍如何使用 Visual Studio 2022 创建应用附加就绪包并将其发布到 Azure 虚拟桌面。
什么是应用附加?
MSIX 应用附加是一种将 MSIX 应用程序传送到物理计算机和虚拟机的方法。 但是,MSIX 应用附加不同于常规 MSIX,因为它特别适用于受支持的产品,例如 Azure 虚拟桌面。
为何附加应用?
企业首选应用附加功能:
- 更轻松地管理 Windows 映像
- 更好的应用可管理性,包括更低的维护成本和更好的安全性
流式传输应用的数据会随用户一起漫游。 这有助于他们立即运行应用,并随时随地继续体验。
使用本地应用附加 可以在设备上运行 MSIX 应用程序,而无需将它们安装到设备上。 支持本地应用附加的 API 在 Windows 11 企业版和 Windows 10 企业版上完全受支持,这些 API 已烘焙到 OS 中以装载和卸载应用程序。 还可以使用 PowerShell cmdlet 或脚本自动执行该过程。
前置步骤
- 下载并安装 Visual Studio 2022。
- 设置 Visual Studio for C# 。
- 通过以下方法在 Visual Studio 中配置“Azure 开发”工作负荷:
- 打开 Visual Studio 安装程序
- 单击“修改”
- 确保已选择 Azure 开发
- 单击底部的 “修改 ”以启动更新。
正常运行的 Azure 虚拟桌面部署。 若要了解如何部署 Azure 虚拟桌面(经典),请参阅 在 Azure 虚拟桌面中创建租户。 若要了解如何使用 Azure 资源管理器集成部署 Azure 虚拟桌面,请参阅 使用 Azure 门户创建主机池。
通过 转到此处 或搜索“应用附加工具包”,从 Visual Studio Marketplace 获取扩展。
双击上述下载的文件,将扩展安装到 Visual Studio。
- 确保系统已连接到 Internet。
注释
此扩展仅与 Visual Studio 2022 兼容。
使用扩展
在 Visual Studio 2022 中安装扩展后,
- 右键单击并选择“以管理员身份运行”,以提升模式启动 Visual Studio。
- 使用 Windows 应用 SDK 附带的空白应用、已打包(WinUI 3 in Desktop) Visual Studio 项目模板创建一个基于 WinUI 3 的 C# 或 C++ 桌面应用程序。
注释
目前,仅 WinUI3 应用支持 MSIX 映像创建过程。
- 在解决方案资源管理器中,右键单击项目,然后选择“包”和“发布”->“创建应用附加包”
- 现在,可以通过选择 MSIX 包和 VHDx 文件的输出位置并选择所选平台来配置包。
- 若要在最终用户计算机上安装 MSIX 包,必须使用计算机上受信任的证书对其进行签名。 可以从本地证书存储中选择证书、选择证书文件或创建新证书。 了解如何在此处 对应用包进行签名 。
扩展的功能
该扩展将使开发人员能够创建应用附加就绪包、在本地测试应用附加或直接从 Visual Studio 发布到 AVD 主机池。
您应该选择适当的选项并继续进行。
仅创建磁盘映像
这将创建一个已准备好应用附加的磁盘映像,但不会将其发布到任何地方。 它可用于在其他地方手动传输或发布。 可以转到指定的输出文件夹路径来访问图像。
本地应用程序附加
这将创建应用附加就绪包并将其发布到本地,以便进行测试和故障排除。
它将简化连接 AVD 主机进行测试的过程。 用户可以安装该应用,并在测试完成后弹出磁盘。
Azure (AVD) 应用挂载
这将创建应用附加就绪包并将其发布到 AVD 主机池。
- 若要将应用附加包发布到 Azure 虚拟桌面,请选择 Azure 选项。
注释
此扩展仅允许发布到现有 Azure 资源。
- 选择以下值:
- 订阅ID – 选择要用于部署的 Azure 订阅。
- 资源组 – 使用下拉列表,选择现有的资源组名称。
- 存储帐户 - 选择具有已部署文件共享的存储帐户名称。
- 文件共享 – 在存储包的 Azure 虚拟桌面部署中选择文件共享。
- 应用程序组 – 选择要将应用发布到的应用程序组。
- 工作区 – 选择要向其分配应用程序组的工作区的名称。
- 主机池 – 选择应用程序组的主机池名称。
- 单击“发布”将包发布到上述 Azure 虚拟桌面部署。
常见问题解答 (FAQ)
问 1:为什么本地应用附加过程中部署失败并显示错误?
A1:部署失败的主要原因在于计算机上缺少 MSIX 所需的依赖项。 若要解决此问题,请仔细检查应用附加日志,该日志提供有关继续作所需的特定依赖项的详细信息。
Q2:Azure 虚拟桌面:应用附加验证成功,但应用不会启动
A2:此处的主要问题是 Azure 虚拟机中缺少 MSIX 依赖项。 若要解决此问题,请从应用附加日志中识别所需的依赖项,并确保这些依赖项安装在指定的 VM 中。
问3:错误:在文件共享位置<找不到>虚拟磁盘?
A3:当文件共享与所有 VM 断开连接时,通常会发生此错误。 若要解决此问题,请登录到分配的 VM,并确保相关的文件共享已连接到 VM。 之后,应该能够成功装载和卸载 VHDx 文件。
问4:我已通过多个帐户登录到 Visual Studio,应为 AVD 应用附加选取哪一个帐户?
A4:对于 AVD 应用附加,请确保仅 AVD 管理员用户登录 Visual Studio。 在启动扩展菜单之前删除任何其他帐户。 此外,如果凭据已过期,请重新登录到 Visual Studio。
问 5:扩展是否修改了我的解决方案?
答:是的,扩展会在解决方案的根级别创建 AppAttachPackages 文件夹和 appattach.config 文件。 AppAttachPackages 文件夹包含 MSIX 和 VHDx 项目,而 appattach.config 文件保存应用程序元数据对于应用附加过程至关重要。 可以安全地忽略这些项目。
问 6:是否可以使用扩展将应用程序项目重新发布到 AVD?
A6:否,目前不支持此功能。 但是,可以增加版本并尝试重新发布。 请记住,这将导致远程桌面应用程序中出现两个不同的应用。 此外,还可以通过 Azure 门户在“主机池 - MSIX 包”部分中将以前的版本标记为非活动状态。
问 7:如何卸载本地附加的应用程序?
A7:右键单击搜索栏中的应用并选择卸载。 此外,弹出新添加到您的电脑的驱动器。 若要进行全面删除,请以管理模式启动 PowerShell 并执行以下命令:
$msixPackageFullName = <msixPackageFullName>
Remove-AppxPackage $msixPackageFullName -PreserveRoamableApplicationData
问8:在执行过程中,我的进程超时了。
A8:在 appattach.config 中,找到 <ProcessTimeOut> 标签并增加超时值。 默认值为 600 秒(10 分钟),可以根据要求对其进行调整。