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

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

应用包类型

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

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

  • 应用包上传文件 (.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 本机 工具链,因此请务必使用此 发布 配置测试应用,并检查应用是否按预期运行。

配置项目

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

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

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

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

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

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

    Visual Studio 中的清单设计器

    检查你在 “视觉资产 ”选项卡上是否有应用所需的所有图像。你可以在其中提供 应用图标和徽标

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

    注意

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

    重要

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

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

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

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

生成应用包

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

使用打包向导创建应用包

注意

以下说明和屏幕截图描述了 Visual Studio 2019 版本 16.3 中的过程。 如果使用的是早期版本,则某些 UI 看起来可能有所不同。 如果要打包桌面应用程序,请右键单击 Windows 应用程序打包项目节点。

  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 创建应用包上传文件

注意

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

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

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

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

    此时会显示 “创建应用包 ”向导。

  3. 在第一个对话框中使用新应用名称选择 Microsoft Store,然后单击“下一步”。

    使用 Microsoft Store 显示的“创建包”对话框窗口

    如果已将项目与应用商店中的应用相关联,还可以选择为关联的应用商店应用创建包。 如果选择 旁加载,Visual Studio 将不会为合作伙伴中心提交生成应用包上传 (.msixupload 或 .appxupload) 文件。 如果只想为非应用商店分发创建 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 应用认证工具包

    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 开始,可以直接从 IDE 将生成的 .appxupload 文件提交到 Microsoft Store,方法是在“创建应用包”向导结束时选择“自动提交到 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 中配置自动应用商店提交

完成上述步骤后,可以在 Visual Studio 2019 中配置自动应用商店提交。

  1. “创建应用包”向导结束时,选择 “在 Windows 应用认证工具包验证后自动提交到 Microsoft Store”, 然后单击“ 重新配置”。

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

    配置 Microsoft Store 提交设置

    重要

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

  3. 单击“确定”。

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

验证和发布进度