旁加载应用程序映像包进行测试
重要
这是 Azure Sphere(旧版)文档。 Azure Sphere(旧版)将于 2027 年 9 月 27 日停用,用户此时必须迁移到 Azure Sphere(集成)。 使用位于 TOC 上方的版本选择器查看 Azure Sphere(集成)文档。
在开发过程中,可能需要将映像包旁加载到 Azure Sphere 设备上进行测试。 使用 Visual Studio 或 Visual Studio Code 集成开发环境 (IDE) 生成应用程序时,SDK 会打包应用程序映像。 如果你可以直接访问 Azure Sphere 设备,则 SDK 还可以删除未标记为合作伙伴的现有应用程序,将新的映像包加载到设备上,启动此包并启用调试。 你还可以直接从命令行旁加载映像包。
必须先为设备启用 appDevelopment 功能,并将设备添加到不支持云应用程序更新的设备组。 将设备分配给此类组可确保旁加载应用程序不会为云部署所覆盖。 若要准备设备,请使用 azsphere device enable-development 命令。 现在,可以旁加载映像。
从命令行旁加载并调试映像包
若要从命令行旁加载映像包,请删除设备上的任何现有应用程序,然后加载新的应用程序。
要停止并删除设备上的所有应用程序:
azsphere device sideload delete
若要删除单个应用程序,请添加 --component-id 选项,如下所示:
azsphere device sideload delete --component-id <ComponentID>
接下来,旁加载新映像包:
azsphere device sideload deploy --image-package <imagepackagepath>
将 imagepackagepath 替换为映像包的路径。 如果使用的是 Visual Studio 或 Visual Studio Code,可在应用程序项目文件夹的“bin\ARM\Debug”或“bin\ARM\Release”子文件夹中找到映像包。 默认情况下,该命令在部署后再启动应用程序。
若要调试应用程序,请将 --manual-start 标志添加到 azsphere device sideload deploy 命令以禁止自动启动,然后启动应用程序进行调试:
azsphere device sideload deploy --manual-start --image-package <imagepackagepath>
azsphere device app start --debug --component-id <ComponentID>
该命令显示高级应用程序的输出和调试端口:
Output Port: 2342
GDB Port: 2345
将应用程序标记为合作伙伴
相关的应用程序应标记为合作伙伴应用程序。 在许多情况下,你会加载多个应用程序,例如两个相互通信的高级实时应用程序。 将应用程序标记为合作伙伴应用程序可以防止在加载第二个应用程序时删除第一个应用程序。 当 Visual Studio 和 Visual Studio Code IDE 旁加载新的映像包时,它们会删除任何未标记为合作伙伴应用程序的现有应用程序。
若要在 Visual Studio 中使用 CMake 将应用程序标记为合作伙伴应用程序,请执行以下操作:
编辑应用程序的 launch.vs.json 文件。
添加以下行:
"partnerComponents": [ "<Component ID>" ]
将
<Component ID>
替换为合作伙伴应用程序的组件 ID 并保存文件。 可以在其app_manifest.json文件中或使用 azsphere device image list-installed 或 azsphere device app show-status 查找每个应用程序的组件 ID。
若要在 Visual Studio Code 中使用 CMake 将应用程序标记为合作伙伴应用程序,请执行以下操作:
编辑应用程序的 .vscode\launch.json 文件。
添加以下行:
"partnerComponents": [ "<Component ID>" ]
将
<Component ID>
替换为合作伙伴应用程序的组件 ID 并保存文件。 可以在其app_manifest.json文件中或使用 azsphere device image list-installed 或 azsphere device app show-status 查找每个应用程序的组件 ID。