Visual Studio 中的应用附加
本文介绍如何使用 Visual Studio 2022 创建应用附加就绪包,并将其发布到 Azure 虚拟桌面。
什么是应用附加?
MSIX 应用附加是将 MSIX 应用程序交付到物理计算机和虚拟机的一种方法。 但是,MSIX 应用附加不同于常规 MSIX,因为它是特别为 Azure 虚拟桌面等受支持的产品提供的。
为什么要使用附加应用?
企业对应用附加青睐有以下几点原因:
- 可以更轻松地管理 Windows 映像
- 可以更好地管理应用,包括降低维护成本,增强安全性
帮助用户流式处理应用数据漫游。 这样可帮助用户立即运行应用,无论身在何处都能继续体验。
借助本地应用附加,可在设备上运行 MSIX 应用程序,而无需进行安装。 支持本地应用附加的 API 在 Windows 11 企业版和 Windows 10 企业版中受到完全支持,而这些 API 也已内置到 OS 中以装载和卸载应用程序。 此外,还可使用 PowerShell cmdlet 或脚本来自动执行此流程。
先决条件步骤
- 下载并安装 Visual Studio 2022。
- 针对 C# 设置 Visual Studio。
- 通过以下方式在 Visual Studio 中配置“Azure 开发”工作负载:
- 打开 Visual Studio 安装程序
- 单击“修改”。
- 确保已选择“Azure 开发”
- 单击底部的“修改”以启动更新。
正常运行的 Azure 虚拟桌面部署。 要了解如何部署 Azure 虚拟桌面(经典),请参阅在 Azure 虚拟桌面中创建租户。 要了解如何使用 Azure 资源管理器集成部署 Azure 虚拟桌面,请参阅使用 Azure 门户创建主机池。
转到此处或搜索“应用附加工具包”,从 Visual Studio Marketplace 获取扩展。
双击上述下载的文件,将扩展安装到 Visual Studio。
- 确保系统已联网。
注意
此扩展仅与 Visual Studio 2022 兼容。
使用扩展
在 Visual Studio 2022 中安装好扩展后,
- 右键单击并选择“以管理员身份运行”,在提升模式下启动 Visual Studio。
- 使用空白应用,打包了(桌面版中的 WinUI 3),即随附 Windows 应用 SDK 的 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:为什么暂存在本地应用附加中失败,显示错误?
解答 1:暂存失败的主要原因是计算机上缺少供 MSIX 使用的必要依赖项。 若要解决此问题,请仔细检查应用附加日志,其中提供了有关继续操作所需的特定依赖项的详细信息。
问题 2:Azure 虚拟桌面:应用附加验证成功,但应用不启动
解答 2:这种情况的主要原因是 Azure 虚拟机中缺少 MSIX 依赖项。 若要解决此问题,请从应用附加日志中识别所需的依赖项,并确保这些依赖项安装在指定的 VM 中。
问题 3:错误:在文件共享位置<找不到虚拟磁盘>?
解答 3:当文件共享与所有虚拟机断开连接时,通常会发生此错误。 若要解决此问题,请登录到分配的虚拟机,并确保相关文件共享已连接到虚拟机。 之后,就应该能够成功装载和卸除 VHDx 文件了。
问题 4:我在 Visual Studio 中登录过多个帐户,应该选择哪一个帐户进行 AVD 应用附加?
解答 4:进行 AVD 应用附加时,请确保仅 AVD 管理员用户登录到 Visual Studio。 请先删除任何其他帐户,然后再启动扩展菜单。 此外,如果凭据已过期,请重新登录 Visual Studio。
问题 5:扩展是否会修改我的解决方案?
解答 5:是的,扩展会在解决方案的根级别创建 AppAttachPackages 文件夹和 appattach.config
文件。 AppAttachPackages 文件夹包含 MSIX 和 VHDx 项目,而 appattach.config
文件保存应用程序元数据对于应用附加过程至关重要。 你可以安全地忽略这些事情。
问题 6:是否可以使用扩展将应用程序项目重新发布到 AVD?
解答 6:否,目前不支持此功能。 但是,可以增加版本并尝试重新发布。 请记住,这将导致远程桌面应用程序中出现两个不同的应用。 此外,还可以通过 Azure 门户将以前的版本标记为“主机池 -> MSIX 包”部分处于非活动状态。
问题 7:如何卸载在本地附加的应用程序?
解答 7:右键单击搜索栏中的应用并选择卸载。 此外,请弹出添加到此电脑的新驱动器。 若要彻底删除,请以管理模式启动 PowerShell 并执行以下命令:
$msixPackageFullName = <msixPackageFullName>
Remove-AppxPackage $msixPackageFullName -PreserveRoamableApplicationData
问题 8:执行过程中的进程超时。
解答 8:在中 appattach.config
,找到 <ProcessTimeOut> 标记并增加超时值。 默认值为 600 秒(10 分钟),可以根据需求进行调整。