在 Visual Studio 中打包桌面或 UWP 应用
分发应用之前,你需要将其打包。 本文介绍使用 Visual Studio 配置、创建和测试 MSIX 包的过程。
应用包类型
应用包(.msix 或 .appx)
包含应用程序及其资源的一个包,面向单设备体系结构。 例如,x64 或 x86 应用捆绑包。 要使应用捆绑包面向多个体系结构,需要为每个体系结构生成一个包。应用捆绑包(.msixbundle 或 .appxbundle)
应用捆绑包是一种可以包含多个应用包的包,每个包都是为了支持特定设备体系结构而生成的。 例如,应用捆绑包可以包含三个单独的应用包,用于 x86、x64 和 ARM 配置。 应尽可能生成应用捆绑包,因为它们可以让应用在尽可能广泛设备上可用。应用包上传文件(.msixupload 或 .appxupload)- 仅适用于 Microsoft Store 提交
一个文件,可包含多个应用包或一个应用捆绑包以支持各种处理器体系结构。 应用包上传文件还包含一个符号文件,用于在 Microsoft Store 中发布应用后分析应用性能。 如果将应用与 Visual Studio 打包,打算将其提交到合作伙伴中心,以便发布到 Microsoft Store,则会自动创建此文件。
下面是准备和创建应用包的步骤概述:
打包应用之前。 按照以下步骤操作,确保应用已准备好打包。
配置项目。 使用 Visual Studio 清单设计器配置包。 例如,添加磁贴图像并选择应用支持的方向。
创建应用捆绑包。 使用 Visual Studio 打包向导创建应用包。
运行、调试和测试打包的应用程序。 通过 Visual Studio 运行和调试应用包,或者直接安装包。
打包应用之前
测试应用。 在打包应用程序之前,请确保其在计划支持的所有设备系列上按预期工作。 这些设备系列可能包括台式机、移动设备、Surface Hub、Xbox、IoT 设备或其他设备。 有关使用 Visual Studio 部署和测试应用的详细信息,请参阅部署和调试 UWP 应用(也适用于打包的桌面应用程序)。
优化应用。 可以使用 Visual Studio 的分析和调试工具来优化打包应用程序的性能。 例如,用于 UI 响应的时间线工具、内存使用情况工具、CPU 使用率工具等。 有关这些工具的详细信息,请参阅分析功能教程主题。
检查 .NET Native 兼容性(适用于 VB 和 C# 应用)。 在通用 Windows 平台中,有一个将提高应用运行时性能的本机编译器。 进行此更改后,应在此编译环境中测试应用。 默认情况下,“发布”生成配置启用 .NET Native 工具链。因此,使用此“发布”配置测试应用并检查应用的行为是否符合预期,这非常重要。
配置项目
应用清单文件 (Package.appxmanifest) 是一个 XML 文件,其中包含创建应用包所需的属性和设置。 例如,应用清单文件中的属性描述用作应用磁贴的图像,以及在用户旋转设备时应用支持的方向。
Visual Studio 清单设计器允许在不编辑文件原始 XML 的情况下更新清单文件。
使用清单设计器配置包
在解决方案资源管理器中,展开应用程序项目的项目节点。
双击“Package.appxmanifest”文件。 如果清单文件已在 XML 代码视图中打开,Visual Studio 会提示你关闭该文件。
现在,你可以决定如何配置应用。 每个选项卡都包含可以配置有关应用的信息,以及必要时指向更多信息的链接。
在“视觉资产”选项卡上检查是否已拥有应用所需的所有图像。你可以在其中提供应用图标和徽标。
在“打包”选项卡中,可以输入发布数据。 可在其中选择要用于对应用进行签名的证书。 所有 MSIX 应用都必须使用证书进行签名。
注意
从 Visual Studio 2019 开始,不再在打包的桌面或 UWP 项目中生成临时证书。 若要创建或导出证书,请使用此文中所述的 PowerShell cmdlet。 在最新版本的 Visual Studio 中,还可以使用 Azure 密钥保管库中存储的证书对应用进行签名,以开发和测试应用场景。
重要
如果要在 Microsoft Store 中发布应用,则应用将使用受信任的证书进行签名。 这样,用户无需安装关联的应用签名证书即可安装和运行应用。
如果要在设备上安装应用包,首先需要信任该包。 要信任包,必须在用户的设备上安装证书。
为应用进行必要的编辑后,保存 Package.appxmanifest 文件。
如果要通过 Microsoft Store 分发应用,Visual Studio 可以将包与 Microsoft Store 相关联。 为此,请在解决方案资源管理器中右键单击项目名称,然后选择“发布”->“关联应用与 Microsoft Store”(Visual Studio 2019 版本 16.3 之前,“发布”菜单名为 Store)。 也可以在“创建应用包”向导中执行此操作,如以下部分所述。 关联应用时,清单设计器“打包”选项卡中的某些字段会自动更新。
生成应用捆绑包
通过使用 Microsoft Intune 和 Configuration Manager 等应用程序管理工具在网站上发布应用,无需在 Store 中发布即可安装应用。还可以直接安装 MSIX 包,以在本地或远程计算机上进行测试。
使用打包向导创建应用包
注意
以下说明和屏幕截图描述了截至 Visual Studio 2019 版本 16.3 的过程。 如果使用的是早期版本,则某些 UI 看起来可能有所不同。 如果要打包桌面应用程序,请右键单击 Windows 应用程序打包项目节点。
在解决方案资源管理器中,打开应用程序项目的解决方案。
右键单击项目并选择“发布”->“创建应用包”(在 Visual Studio 2019 版本 16.3 之前,“发布”菜单名为 Store)。
在向导的第一页中选择“旁加载”,然后单击“下一步”。
在“选择签名方法”页上,选择是跳过打包签名还是选择证书进行签名。 可以从本地证书存储中选择证书、选择证书文件或创建新证书。 若要在最终用户计算机上安装 MSIX 包,必须使用计算机上受信任的证书对其进行签名。
按照使用 Visual Studio 创建应用包上传文件部分中所述完成“选择和配置包”页面。
双击安装应用包
只需双击应用包文件即可安装应用包。 为此,请导航到应用包或应用捆绑文件,然后双击它。 应用安装程序将启动并提供基本应用信息以及安装按钮、安装进度栏和任何相关的错误消息。
注意
应用安装程序假定该包已使用设备上受信任的证书进行签名。 如果没有,则需要将签名证书安装到设备上的“受信任的人员”或“受信任的发布者”证书颁发机构存储中。 如果不确定如何执行此操作,请参阅安装测试证书。
使用安装脚本安装应用包
打开
*_Test
文件夹。右键单击 Add-AppDevPackage.ps1 文件。 选择“使用 PowerShell 运行”,然后按照提示进行操作。
安装应用包后,PowerShell 窗口会显示以下消息:“已成功安装应用。”
单击“开始”按钮按名称搜索应用,然后启动该应用。
后续步骤:调试和测试应用包
请参阅运行、调试和测试应用包,了解如何在 Visual Studio 中或使用 Windows 调试工具调试应用程序。
为 Store 提交生成应用包上传文件
要将应用分发到 Microsoft Store,建议生成应用包上传文件(.msixupload 或 .appxupload),并将此文件提交到合作伙伴中心。 尽管可以单独将应用包或应用捆绑包提交到合作伙伴中心,但我们建议改为提交应用包上传文件。
可以使用 Visual Studio 中的“创建应用包”向导创建应用包上传文件,也可以从现有应用包或应用捆绑包手动创建一个。
注意
如果要手动创建应用包(.msix 或.appx)或应用捆绑包(.msixbundle 或 .appxbundle),请参阅使用 MakeAppx.exe 工具创建应用包。
使用 Visual Studio 创建应用包上传文件
注意
以下说明和屏幕截图描述了截至 Visual Studio 2019 版本 16.3 的过程。 如果使用的是早期版本,则某些 UI 看起来可能有所不同。
在解决方案资源管理器中,打开 UWP 应用项目的解决方案。
右键单击项目并选择“发布”->“创建应用包”(在 Visual Studio 2019 版本 16.3 之前,“发布”菜单名为 Store)。 如果此选项已禁用或根本不显示,检查该项目是否为通用 Windows 项目。
会显示“创建应用包”向导。
在第一个对话框中选择“使用新应用名称的 Microsoft Store”,然后单击“下一步”。
如果已将项目与 Store 中的应用相关联,还可以选择为关联的 Store 应用商应用创建包。 如果选择“旁加载”,Visual Studio 将不会为合作伙伴中心提交生成应用包上传(.msixupload 或 .appxupload)文件。 如果只想为非 Store 分发创建 MSIX 包或捆绑包,则可以选择此选项。
在下一页上,使用开发者帐户登录到合作伙伴中心。 如果还没有开发者帐户,向导将帮你创建一个。
从当前注册到帐户的应用列表中选择程序包的应用名称,或者如果尚未在合作伙伴中心预留名称,请预留一个新名称。
请确保在“选择和配置包”对话框中选择所有三种体系结构配置(x86、x64 和 ARM),以确保应用可以部署到最广泛的设备。 在“生成应用捆绑包”列表框中,选择“始终”。 应用捆绑包(.appxbundle 或 .msixbundle)优先于单个应用包文件,因为它包含为每种处理器体系结构配置的应用包集合。 选择生成应用捆绑包时,应用捆绑包将与调试和崩溃分析信息一起包含在最终应用包上传(.appxupload 或 .msixupload)文件中。 如果不确定要选择哪个体系结构,或者想要详细了解各种设备使用的体系结构,请参阅应用包体系结构。
发布应用后,包含公共符号文件以从合作伙伴中心分析应用性能。 配置任何其他详细信息,如版本号或包输出位置。
单击“创建”以生成应用包。 如果在步骤 3 中选择了“我要创建要上传到 Microsoft Store 的包”选项之一,并创建用于合作伙伴中心提交的包,则向导将创建包上传(.appxupload 或 .msixupload)文件。 如果在步骤 3 中选择了“我想创建包以进行旁加载”,则向导将根据你在步骤 6 中的选择创建一个应用包或应用捆绑包。
成功打包应用后,你将看到此对话框,并可从指定的输出位置检索应用包上传文件。 此时,可以在本地计算机或远程计算机上验证应用包并自动执行 Stor 提交。
手动创建应用包上传文件
将以下文件放入文件夹中:
- 一个或多个应用包(.msix 或 .appx)或应用捆绑包(.msixbundle 或 .appxbundle)。
- 一个 .appxsym 文件。 这是一个压缩的 .pdb 文件,其中包含用于合作伙伴中心内崩溃分析的应用的公共符号。 可以省略此文件,但这样将无法获得任何崩溃分析或调试信息。
选择该文件夹中的所有文件,右键单击并选择“发送到”->“压缩 (zipped) 文件夹”。
将新 zip 文件的扩展名从 .zip 更改为 .msixupload 或 .appxupload。
验证应用包
在将应用提交到合作伙伴中心以在本地或远程计算机上进行认证之前,请对其进行验证。 只能验证应用包的发布版本,不能验证调试版本。 有关将应用提交到合作伙伴中心的详细信息,请参阅应用提交。
在本地验证应用包
在“创建应用包”向导的最后一个“已创建包”页面中,选中“本地计算机”选项,然后单击“启动 Windows 应用认证工具包”。 有关使用 Windows 应用认证工具包测试应用的详细信息,请参阅 Windows 应用认证工具包。
Windows 应用认证工具包 (WACK) 执行各种测试并返回结果。 有关更具体的信息,请参阅 Windows 应用认证工具包测试。
如果你有要用于测试的远程 Windows 10 设备,则需要在该设备上手动安装 Windows 应用认证工具包。 下一部分将引导你完成这些步骤。 完成后,可以选择“远程计算机”并单击“启动 Windows 应用认证工具包”以连接到远程设备并运行验证测试。
WACK 完成并且应用已通过认证后,即可将应用提交到合作伙伴中心。 请确保上传正确的文件。 该文件的默认位置在解决方案
\[AppName]\AppPackages
的根文件夹中,它将以 .appxupload 或 .msixupload 文件扩展名结尾。 如果选择了具有所有包体系结构的应用程序捆绑包,则名称格式为[AppName]_[AppVersion]_x86_x64_arm_bundle.appxupload
或[AppName]_[AppVersion]_x86_x64_arm_bundle.msixupload
。
在远程 Windows 10 设备上验证应用包
按照启用设备进行开发说明操作,启用 Windows 10 设备进行开发。
重要
不能在适用于 Windows 10 的远程 ARM 设备上验证应用包。
下载和安装 Visual Studio 远程工具。 这些工具用于远程运行 Windows 应用认证工具包。 可以通过访问在远程计算机上运行 MSIX 应用程序来获取有关这些工具的更多信息,包括其下载位置。
下载所需的 Windows 应用认证工具包 ,然后将其安装在远程 Windows 10 设备上。
在向导的“已创建包”页面中,选择“远程计算机”选项按钮,然后选择“测试连接”按钮旁边的省略号按钮。
注意
仅当选择了至少一个支持验证的解决方案配置时,“远程计算机”选项按钮才可用。 有关使用 WACK 测试应用的详细信息,请参阅 Windows 应用认证工具包。
指定子网内的设备形式,或提供子网外设备的域名服务器 (DNS) 名称或 IP 地址。
在“身份验证模式”列表中,如果设备不要求使用 Windows 凭据登录,请选择“无”。
选择“选择”按钮,然后选择“启动 Windows 应用认证工具包”按钮。 如果远程工具在该设备上运行,Visual Studio 将连接到该设备,然后执行验证测试。 请参阅 Windows 应用认证工具包测试。
自动执行 Store 提交
从 Visual Studio 2019 开始,通过在“创建应用包”向导结束时选择“Windows 应用认证工具包验证后自动提交到 Microsoft Store”验证选项,可以直接从 IDE 将生成的 .appxupload 文件提交到 Microsoft Store。 此功能利用 Azure Active Directory 访问发布应用所需的合作伙伴中心帐户信息。 要使用此功能,需要将 Azure Active Directory 与合作伙伴中心帐户相关联,并检索提交所需的多个凭据。
将 Azure Active Directory 与合作伙伴中心帐户相关联
在检索自动 Store 提交所需的凭据之前,必须先在合作伙伴中心面板中执行这以下步骤(如果尚未执行)。
将合作伙伴中心帐户与组织的 Azure Active Directory 相关联。 如果你的组织已经使用 Office 365 或 Microsoft 的其他业务服务,则你已经具有 Azure AD。 否则,你可以免费在合作伙伴中心创建新的 Azure AD 租户。
将 Azure AD 应用程序添加到合作伙伴中心帐户。 此 Azure AD 应用程序代表你将用于访问开发人员中心帐户提交的应用或服务。 必须为此应用程序分配“管理员”角色。 如果此应用程序已存在于你的 Azure AD 目录中,你可以在“添加 Azure AD 应用程序”页面上选择它,以将其添加到你的开发人员中心帐户。 如果没有此应用程序,你可以在“添加 Azure AD 应用程序”页面上创建新的 Azure AD 应用程序。
检索提交所需的凭据
接下来,可以检索提交所需的合作伙伴中心凭据:“Azure 租户 ID”、“客户端 ID”和“客户端密钥”。
转到合作伙伴中心面板并使用 Azure AD 凭据登录。
在合作伙伴中心面板中,选择齿轮图标(靠近面板右上角),然后选择“开发人员设置”。
在左侧窗格的“设置”菜单中,单击“用户”。
单击 Azure AD 应用程序的名称,转到应用程序设置。 在此页上,复制“租户 ID”和“客户端 ID”值。
在“密钥”部分中,单击“添加新密钥”。 在下一个屏幕上,复制与客户端密码对应的“密钥”值。 离开此页面后,将无法再次访问此信息,因此请确保不会丢失此信息。 有关详细信息,请参阅管理 Azure AD 应用程序的密钥。
在 Visual Studio 中配置自动 Store 提交
完成上述步骤后,可以在 Visual Studio 2019 中配置自动 Store 提交。
在“创建应用包”向导结束时,选择“Windows 应用认证工具包验证后自动提交到 Microsoft Store”,然后单击“重新配置”。
在“配置 Microsoft Store 提交设置”对话框中,输入 Azure 租户 ID、客户端 ID 和客户端密钥。
重要
凭据可以保存到个人资料,供将来提交使用
单击“确定”。
提交将在 WACK 测试完成后开始。 可以在“验证和发布”窗口中跟踪提交进度。