运行打包的应用程序并查看其外观,而无需对其进行签名。 然后,设置断点并单步执行代码。 准备好在生产环境中测试应用程序时,请对应用程序进行签名,然后安装它。 本主题说明如何执行上述每一项作。
运行应用程序
可以运行应用程序在本地对其进行测试,而无需获取证书并对其进行签名。 运行应用程序的方式取决于用于创建包的工具。
使用 Visual Studio 创建了包
将打包项目设置为启动项目,然后按 F5 启动应用。
你使用其他工具创建了包
打开 Windows PowerShell 命令提示符,并从包文件的根目录运行以下 cmdlet:
Add-AppxPackage –Register AppxManifest.xml
若要启动应用,请在 Windows“开始”菜单中找到它。
注释
打包的应用程序始终作为交互式用户运行,并且安装打包应用程序的任何驱动器都必须格式化为 NTFS 格式。
调试应用
调试应用程序的方式取决于用于创建包的工具。
如果使用 Visual Studio 2017 版本 15.4 及更高版本中提供 的新打包项目 (包括 Visual Studio 2019)创建了包,只需将打包项目设置为启动项目,然后按 F5 调试应用。
如果使用任何其他工具创建了包,请执行以下步骤:
请确保至少启动打包的应用程序一次,以便将其安装在本地计算机上。
请参阅上面的 “运行应用 ”部分。
启动 Visual Studio。
如果要使用提升的权限调试应用程序,请使用 “以管理员身份运行 ”选项启动 Visual Studio。
在 Visual Studio 中,选择 “调试->其他调试目标->调试已安装的应用包”。
在 “已安装的应用包 ”列表中,选择应用包,然后选择“ 附加 ”按钮。
在调试会话之间修改应用程序
如果对应用程序进行更改以修复 bug,请使用 MakeAppx 工具重新打包它。 请参阅 “运行 MakeAppx”工具。
调试整个应用程序生命周期
在某些情况下,你可能希望对调试过程进行精细的控制,包括能够在启动应用程序之前调试应用程序。
可以使用 PLMDebug 完全控制应用程序生命周期,包括暂停、恢复和终止。
Windows SDK 随附了 PLMDebug。
测试你的应用
若要在准备分发时为端到端生产测试部署打包应用程序,需要使用部署应用的计算机中受信任的证书对包进行签名。
测试使用 Visual Studio 打包的应用程序
Visual Studio 使用测试证书对应用程序进行签名。 你将在 “创建应用包 ”向导生成的输出文件夹中找到该证书。 证书文件具有 .cer 扩展名,必须在要测试应用程序的电脑上将该证书安装到 受信任的人员 证书存储中。 请参阅 在 Visual Studio 中打包桌面或 UWP 应用。
测试使用其他工具打包的应用程序
如果在 Visual Studio 外部打包应用程序,则可以使用签名工具对应用程序包进行签名。 如果用于签名的证书在您测试的计算机上不受信任,则需要在安装应用包之前将证书安装到受信任的人员证书库。
对应用程序包进行签名
手动对应用程序包进行签名:
创建证书。 请参阅 “创建证书”。
请将该证书安装到系统的受信任人员证书存储中。
使用该证书对应用程序进行签名,请参阅 使用 SignTool 对应用包进行签名。
重要
确保证书上的发布者名称与应用的发布者名称匹配。
相关示例
使用 comparepackage.exe 测试应用程序
ComparePackage.exe 是 Windows SDK 中的一个工具,它显示一个报表,其中指出哪些文件已更改、添加了哪些新文件、已删除了哪些文件,以及当应用从一个版本更新到下一个版本时保持不变的内容。
使用本地应用附加功能测试您的应用程序
使用本地应用附加可以在设备上运行 MSIX 应用程序,而无需将它们安装到设备上。 支持本地应用附加的 API 在 Windows 11 企业版和 Windows 10 企业版上完全受支持,这些 API 已烘焙到 OS 中以装载和卸载应用程序。 还可以使用 PowerShell cmdlet 或脚本自动执行该过程。 有关更多信息,请参阅 测试 MSIX 包以进行应用关联。
测试适用于 Windows 10 S 的应用程序
发布应用之前,请确保它在运行 Windows 10 S 的设备上正常运行。事实上,如果计划将应用程序发布到 Microsoft 应用商店,则必须执行此作,因为它是存储要求。 不能在运行 Windows 10 S 的设备上正常运行的应用将无法认证。
请参阅 测试适用于 Windows 10 S 的 Windows 应用程序。
在完全信任容器中运行另一个进程
可以在指定应用包的容器内调用自定义进程。 这可用于测试方案(例如,如果你有自定义测试工具并想要测试应用的输出)。 为此,请使用 Invoke-CommandInDesktopPackage
PowerShell cmdlet:
Invoke-CommandInDesktopPackage [-PackageFamilyName] <string> [-AppId] <string> [-Command] <string> [[-Args]
<string>] [<CommonParameters>]
后续步骤
有疑问? 在 MSIX 技术社区上询问我们。