在 Visual Studio 中打包桌面或 UWP 应用

在分发您的应用程序之前,您需要将其打包。 本文介绍使用 Visual Studio 配置、创建和测试 .MSIX 包的过程。

应用包类型

  • 应用包 ( 或 .appx)
    单个包,其中包含应用程序及其资源,面向单个设备体系结构。 例如,x64 或 x86 应用程序包。 若要以应用捆绑包为目标,需要为每个体系结构生成一个结构。

  • 应用捆绑包 ( .msixbundle 或 .appxbundle)
    应用程序包可以包含多个应用包,每个包都构建为支持特定的设备体系结构。 例如,一个应用程序包可以包含三个独立的应用包,它们分别用于 x86、x64 和 ARM 配置。 应尽可能生成应用程序包,因为它们使你的应用能够在尽可能广泛的设备上使用。

  • 应用包 Upload 文件 ( msixupload 或 .appxupload) -仅限商店提交
    一个可以包含多个应用包或一个应用程序包以支持各种处理器体系结构的文件。 应用包上传文件还包含一个符号文件,用于分析应用在 Microsoft Store 中发布后的应用性能。 如果你正在将应用 Visual Studio 程序打包到合作伙伴中心以便发布到 Microsoft Store,则会自动为你创建此文件。

以下是准备和创建应用包的步骤概述:

  1. 在打包应用前。 请按照以下步骤操作,确保应用已准备好进行打包。

  2. 配置项目。 使用 Visual Studio 清单设计器配置程序包。 例如,添加磁贴图像并选择应用支持的方向。

  3. 生成应用程序包。 使用 Visual Studio 打包向导来创建应用程序包。

  4. 运行、调试和测试打包的应用程序。 通过 Visual Studio 或直接安装包来运行和调试应用程序包。

在打包应用前

  1. 测试应用。 打包应用程序之前,请确保它在你打算支持的所有设备家族上按预期工作。 这些设备系列可能包括桌面设备、移动设备、Surface Hub、Xbox、IoT 设备或其他设备。 有关使用 Visual Studio 部署和测试应用的详细信息,请参阅部署和调试 UWP 应用 (同样适用于) 打包的桌面应用。

  2. 优化你的应用。 可以使用 Visual Studio 分析和调试工具来优化打包应用程序的性能。 例如,用于 UI 响应能力的时间线工具、内存使用工具、CPU 使用工具等。 有关这些工具的详细信息,请参阅分析功能教程主题。

  3. 检查 .NET Native 兼容性(对于 VB 和 C# 应用)。 在通用 Windows 平台中,有一个本机编译器可以提升应用的运行时性能。 通过这项更改,你应在该编译环境中测试你的应用。 默认情况下," 发布 " 生成配置启用 .net native 工具链,因此,请务必使用此 版本 配置来测试应用程序,并检查应用程序的行为是否符合预期。

配置项目

应用清单文件 (Package.appxmanifest.xml) 是一个 XML 文件,其中包含创建应用包所需的属性和设置。 例如,应用清单文件中的属性描述了要用作应用的磁贴的映像和应用在用户旋转设备时支持的方向。

Visual Studio 的清单设计器让你能够更新清单文件,而无需编辑文件的原始 XML。

使用清单设计器配置程序包

  1. 解决方案资源管理器 中,展开应用程序项目的项目节点。

  2. 双击 appxmanifest.xml 文件。 如果清单文件已经在 XML 代码视图中打开,Visual Studio 会提示你关闭该文件。

  3. 现在,你可以确定如何配置你的应用。 每个选项卡都包含可以配置的有关应用的信息,以及更多信息的链接(如果需要)。

    Visual Studio 中的清单设计器

    检查 " 视觉资产 " 选项卡上的应用所需的所有映像。 你将在此处提供 应用图标和徽标

    从 " 打包 " 选项卡中,你可以输入发布数据。 你可以从此位置选择用于对你的应用进行签名的证书。 必须使用证书对所有 .MSIX 应用进行签名。

    备注

    从 Visual Studio 2019 开始,已打包的桌面或 UWP 项目中不再生成临时证书。 若要创建或导出证书,请使用此文中所述的 PowerShell cmdlet。 在最新版本的 Visual Studio 中,还可以使用存储在用于开发和测试方案的Azure Key Vault 中的证书对应用进行签名

    重要

    如果你是在 Microsoft Store 中发布应用,将使用你的受信任的证书进行签名。 这让用户能够安装和运行你的应用,而不必安装关联的应用签名证书。

    如果要在设备上安装应用程序包,首先需要信任包。 要信任该程序包,必须在用户设备上安装证书。

  4. 在你对应用进行必要的编辑后,请保存你的 Package.appxmanifest 文件。

如果要通过 Microsoft Store 分发应用,Visual Studio 可以将包与应用商店相关联。 为此,请在解决方案资源管理器中右键单击项目名称,然后选择 -> "将应用与应用商店关联" (在 Visual Studio 2019 16.3 之前,"发布" 菜单的 "存储) "。 您也可以在 " 创建应用程序包 " 向导中执行此操作,如下一节中所述。 在关联应用时,会自动更新清单设计器的“打包”选项卡中的某些字段。

生成应用程序包

可以通过使用 Microsoft Intune 和 Configuration Manager 等应用程序管理工具在网站上发布应用程序,而无需在应用商店中发布应用程序。还可以直接在本地或远程计算机上安装用于测试的 .MSIX 包。

使用打包向导创建应用包

备注

以下说明和屏幕截图描述了2019版 16.3 Visual Studio 的过程。 如果使用的是早期版本,则某些 UI 的外观可能会有所不同。 如果正在打包桌面应用程序,请右键单击 Windows 应用程序打包 Project "节点。

  1. 解决方案资源管理器 中,打开应用程序项目的解决方案。

  2. 右键单击该项目,然后选择 "发布 -> 创建应用包" (Visual Studio 2019 16.3 版之前,"发布" 菜单的名称为 "存储) "。

    上下文菜单,可导航到“创建应用包”

  3. 在向导的第一页中选择 " 旁加载 ",然后单击 " 下一步"。

    "创建包" 对话框,其中显示旁加载

  4. 在 " 选择签名方法 " 页上,选择是跳过打包签名还是选择证书进行签名。 你可以从本地证书存储中选择证书、选择证书文件或创建新证书。 若要将 .MSIX 包安装在最终用户的计算机上,必须使用计算机上受信任的证书对其进行签名。

    "创建包" 对话框窗口,其中显示签名

  5. 完成 "使用 Visual Studio 创建应用包上传文件" 部分中所述的 "选择和配置包" 页。

双击安装应用程序包

只需双击应用包文件即可安装应用程序包。 为此,请导航到应用包或应用捆绑包文件,然后双击该文件。 应用程序安装程序 将启动并提供基本应用程序信息、安装按钮、安装进度栏和任何相关错误消息。

备注

应用安装程序假定已使用设备上受信任的证书对包进行了签名。 如果没有,则需要将签名证书安装到设备上的 "受信任人" 或 "受信任的发行者" 证书颁发机构存储区。 如果你不确定如何执行此操作,请参阅安装测试证书

使用安装脚本安装应用程序包

  1. 打开 *_Test 文件夹。

  2. 右键单击 Add-AppDevPackage.ps1 文件。 选择 使用 PowerShell 运行 并按照提示操作。
    显示的文件资源管理器,已导航到 PowerShell 脚本

    安装应用包后,PowerShell 窗口显示消息:已成功安装你的应用。

  3. 单击“开始”按钮,搜索应用名称,然后启动它。

后续步骤:调试和测试应用程序包

请参阅运行、调试和测试应用包,了解如何在 Visual Studio 中调试应用程序Windows调试工具。

为应用商店提交生成应用包上传文件

若要将应用分发到 Microsoft Store,建议生成应用包上传文件 (.msixupload 或 .appxupload) 并将此文件提交到 合作伙伴中心。 尽管可以单独提交应用包或应用包合作伙伴中心,但建议改为提交应用包上传文件。

可以使用应用程序中的"创建应用包"向导创建应用包上传Visual Studio,也可以从现有应用包或应用捆绑包手动创建一个。

备注

如果要手动创建应用包 (.msix 或.appx) 或应用捆绑包 (.msixbundle 或 .appxbundle) ,请参阅使用 MakeAppx.exe工具 创建应用包。

使用 Visual Studio 创建应用包上传文件

备注

以下说明和屏幕截图描述了从 2019 Visual Studio 16.3 版开始的过程。 如果使用的是早期版本,某些 UI 可能看起来不同。

  1. 解决方案资源管理器 中,打开 UWP 应用项目的解决方案。

  2. 右键单击项目并选择"发布创建应用包" (-> 2019 Visual Studio 16.3 之前,"发布"菜单名为"Store ) "。 如果此选项处于禁用状态或根本没有显示,请检查该项目是否为通用 Windows 项目。

    上下文菜单,可导航到“创建应用包”

    将显示 "创建应用包 "向导。

  3. 选择 Microsoft Store一个对话框中的新 应用名称,然后单击"下一 步"。

    "创建包"对话框窗口,显示Microsoft Store

    如果已将项目与应用商店中的应用相关联,则还可以选择为关联的 Store 应用创建包。 如果选择"旁加载",Visual Studio不会为 合作伙伴中心 提交生成应用包上传 (.msixupload 或 .appxup) load 合作伙伴中心文件。 如果只想为非 Store 分发创建 MSIX packge 或捆绑包,可以选择此选项。

  4. 下一页上,使用开发人员帐户登录以合作伙伴中心。 如果你还没有开发者帐户,该向导将帮助你创建一个。

    使用显示的应用名称选择创建应用包窗口

  5. 从当前注册到帐户的应用列表中选择包的应用名称,如果尚未在帐户中预留一个应用,请保留合作伙伴中心。

  6. 确保在 Select and Configure Packages 对话框中选择全部三种体系结构配置(x86、x64 和 ARM),以确保你的应用能够部署到最广泛的设备上。 在"生成应用捆绑包"列表框中,选择"始终 "。 应用捆绑包 (.appxbundle 或 .msixbundle) 比单个应用包文件更可取,因为它包含针对每种类型的处理器体系结构配置的应用包集合。 选择生成应用捆绑时,应用捆绑包将包含在最终应用包上传 (.appxupload 或 .msixupload) 文件中,以及调试和故障分析信息。 如果你不确定该选择哪种体系结构,或者想了解有关各种设备使用哪种体系结构的详细信息,请参阅应用包体系结构

    显示的创建应用包窗口及包配置

  7. 包括公共符号文件 ,以在发布应用 合作伙伴中心分析应用性能。 配置任何其他详细信息,例如版本编号或包输出位置。

  8. 单击 创建 生成应用包。 如果选择了"我想要创建要上传到步骤 3 中的 Microsoft Store 选项的包"之一,并且正在为 合作伙伴中心 提交创建包,则向导将创建包上传 (.appxupload 或 .msixupload) 文件。 如果在 步骤 3 中选择了"我想要创建用于旁加载的包",则向导将基于步骤 6 中的选择创建单个应用包或应用捆绑包。

  9. 成功打包应用后,将看到此对话框,并且可以从指定的输出位置检索应用包上传文件。 此时,可以在本地计算机或远程计算机上验证应用包 自动执行应用商店提交

    显示的程序包创建完成窗口,带有验证选项

手动创建应用包上传文件

  1. 将以下文件放在文件夹中:

    • 一个或多个应用包 (.msix 或 .appx) 或应用捆绑包 (.msixbundle 或 .appxbundle) 。
    • .appxsym 文件。 这是一个压缩的 .pdb 文件,其中包含应用的公共符号,用于在合作伙伴中心。 可以省略此文件,但如果这样做,则应用不会提供故障分析或调试信息。
  2. 选择文件夹中的所有文件,右键单击这些文件,然后选择"发送到压缩 ( -> 压缩) 文件夹 。

  3. 将新的 zip 文件的扩展名从 .zip 更改为 .msixupload 或 .appxupload。

验证应用包

在将应用提交到本地合作伙伴中心远程计算机上进行认证之前,请验证该应用。 你只能验证应用包的发布版本而不是调试版本。 有关将应用提交到 合作伙伴中心,请参阅 应用提交

在本地验证应用包

  1. 在"创建 应用包"向导的最后一个"包创建已完成"页中,保留选中"本地计算机"选项,然后单击"启动Windows 应用程序认证工具包"。 有关使用 Windows 应用认证工具包测试应用的详细信息,请参阅 Windows 应用认证工具包

    WACK Windows应用程序认证工具包 (WACK) 执行各种测试并返回结果。 有关更具体的信息,请参阅 Windows 应用认证工具包测试

    如果你拥有要用于测试的远程 Windows 10 设备,你将需要在该设备上手动安装 Windows 应用认证工具包。 下一节将指导你完成这些步骤。 完成后,可以选择"远程计算机",然后单击"启动Windows 应用程序认证工具包"以连接到远程设备并运行验证测试。

  2. WACK 完成后,应用已通过认证后,即可将应用提交到合作伙伴中心。 请确保上传正确的文件。 可在解决方案的根文件夹中找到该文件的默认位置,其结尾为 \[AppName]\AppPackages .appxupload 或 .msixupload 文件扩展名。 该名称将为 格式,或者,如果选择应用捆绑,并选择了所有 [AppName]_[AppVersion]_x86_x64_arm_bundle.appxupload [AppName]_[AppVersion]_x86_x64_arm_bundle.msixupload 包体系结构。

在远程 Windows 10 设备上验证你的应用包

  1. 按照启用设备进行开发说明启用 Windows 10 设备进行开发。

    重要

    在适用于 Windows 10 的远程 ARM 设备上验证应用包。。

  2. 下载并安装适用于 Visual Studio 的远程工具。 这些工具用于远程运行 Windows 应用认证工具包。 可以通过访问在远程计算机上运行 MSIX 应用程序,获取有关这些工具(包括在何处下载 这些工具)详细信息

  3. 下载所需的 Windows 应用认证工具包,然后将它安装在远程 Windows 10 设备上。

  4. 在向导 的" 包创建已完成"页上,选择"远程计算机"选项按钮,然后选择"测试连接"按钮旁边的 省略号 按钮。

    备注

    只有在 选择了 至少一个支持验证的解决方案配置时,"远程计算机"选项按钮才可用。 有关使用 WACK 测试应用的详细信息,请参阅 Windows 应用认证工具包

  5. 指定你的子网内部的设备规格,或提供你的子网外部的设备的域名服务器 (DNS) 名称或 IP 地址。

  6. 身份验证模式 列表中,如果你的设备没有要求你使用 Windows 凭据登录该设备,请选择

  7. 选择"选择" 按钮,然后选择"启动 Windows认证工具包" 按钮。 如果远程工具正在该设备上运行,Visual Studio 将与其连接,然后执行验证测试。 请参阅 Windows 应用认证工具包测试

自动提交应用商店

从 Visual Studio 2019 开始,可以通过在"创建应用包"向导的末尾选择"在 Windows 应用认证工具包验证后自动提交到 Microsoft Store" 选项,直接从 IDE 将生成的 .appxupload 文件提交到 Microsoft Store。 此功能利用Azure Active Directory来访问合作伙伴中心应用所需的帐户信息。 若要使用此功能,需要将Azure Active Directory帐户合作伙伴中心并检索提交所需的多个凭据。

将Azure Active Directory与合作伙伴中心帐户关联

在检索自动应用商店提交所需的凭据之前,必须先在 合作伙伴中心 仪表板中执行这些步骤(如果尚未这样做)。

  1. 将合作伙伴中心帐户与组织的 Azure Active Directory关联。 如果你的组织已经使用 Office 365 或 Microsoft 的其他业务服务,则你已经具有 Azure AD。 否则,可以从租户Azure AD租户合作伙伴中心租户,无需额外付费。

  2. 将Azure AD应用程序添加到合作伙伴中心帐户。 此Azure AD应用程序表示用于访问帐户提交的应用开发人员中心服务。 必须将此应用程序分配给"管理员 " 角色。 如果此应用程序已存在于你的 Azure AD 目录中,你可以在 添加 Azure AD 应用程序 页面上选择它,以将其添加到你的开发人员中心帐户。 如果没有此应用程序,你可以在“添加 Azure AD 应用程序”页面上创建新的 Azure AD 应用程序。

检索提交所需的凭据

接下来,可以检索合作伙伴中心所需的凭据 :Azure 租户 ID、 客户端 ID客户端密钥

  1. 转到合作伙伴中心 仪表板 ,使用凭据Azure AD登录。

  2. 在合作伙伴中心仪表板上,选择 (右上角附近的齿轮图标) 然后选择"开发人员 设置"。

  3. 在左侧 设置 菜单中,单击"用户 "。

  4. 单击应用程序的名称Azure AD转到应用程序的设置。 在此页上,复制 "租户 ID"和 " 客户端 ID" 值。

  5. 在"密钥 " 部分中,单击 "添加新密钥"。 下一个屏幕上,复制 对应于 客户端机密的"密钥"值。 离开此页面后,将无法再次访问此信息,因此请确保不要丢失此信息。 有关详细信息,请参阅管理 Azure AD 应用程序的密钥

在 Visual Studio 中配置自动应用商店提交

完成上述步骤后,可以在 2019 年 1 月Visual Studio应用商店提交。

  1. 在"创建应用包"向导的末尾 选择"在应用认证工具包验证Microsoft Store自动提交 **Windows",然后单击"**重新配置"。

  2. 在"配置Microsoft Store 设置"对话框中,输入 Azure 租户 ID、客户端 ID 和客户端密钥。

    配置Microsoft Store提交设置

    重要

    凭据可以保存到配置文件中,以用于将来的提交

  3. 单击“确定”。

提交将在 WACK 测试完成后开始。 可以在"验证和发布"窗口中 跟踪提交 进度。

验证和发布进度