使用容器通过 Visual Studio Code 进行生成和调试
重要
这是 Azure Sphere(旧版)文档。 Azure Sphere(旧版)将于 2027 年 9 月 27 日停用,用户此时必须迁移到 Azure Sphere(集成)。 使用位于 TOC 上方的版本选择器查看 Azure Sphere(集成)文档。
如果使用 Visual Studio Code 进行应用程序开发,可以设置项目,使其在容器内部生成。 然后,可以直接在容器中生成和调试。 本主题假定你已使用 Visual Studio Code 创建了一个项目,以便 .vscode 目录存在并具有两个文件launch.json和settings.json。
本主题讨论在本地使用容器; 使用 GitHub Codespaces 进行生成和调试 介绍了如何使用 GitHub Codespaces 来编辑、生成、部署和调试 Azure Sphere 应用。
设置 .devcontainer 文件夹
在项目的顶级目录中,创建名为 .devcontainer 的文件夹。 在此文件夹中,创建包含以下内容的名为devcontainer.json的文件:
{
"name": "Azure Sphere Blink",
"runArgs": [ "--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined"],
"build": {
"dockerfile": "Dockerfile",
"target": "dev"
},
// Use 'settings' to set *default* container specific settings.json values on container create.
// You can edit these settings after create using File > Preferences > Settings > Remote.
"settings": {
"terminal.integrated.shell.linux": "/bin/bash"
},
// Use 'appPort' to create a container with published ports. If the port isn't working, be sure
// your server accepts connections from all interfaces (0.0.0.0 or '*'), not just localhost.
// "appPort": [],
// Uncomment the next line to run commands after the container is created.
// "postCreateCommand": "gcc -v",
// Comment out the next line if you want to run as root instead
"remoteUser": "vscode",
// Add the IDs of extensions you want installed when the container is created in the array below.
"extensions": [
"ms-vscode.cpptools",
"ms-vscode.azure-sphere-tools",
"ms-vscode.azure-sphere-tools-ui"
]
}
接下来,在 .devcontainer 文件夹中创建包含以下内容的名为 Dockerfile 的文件:
FROM mcr.microsoft.com/azurespheresdk:latest AS dev
FROM dev AS build
COPY ./ /src/
WORKDIR /out
RUN cmake -G "Ninja" -DCMAKE_TOOLCHAIN_FILE="/opt/azurespheresdk/CMakeFiles/AzureSphereToolchain.cmake" \
-DAZURE_SPHERE_TARGET_API_SET="latest-lts" -DCMAKE_BUILD_TYPE="Release" "/src"
ENTRYPOINT [ "ninja" ]
初始 FROM
行将标准 Azure Sphere Docker 映像指定为基本开发容器,第二行表示将该基本容器用作生成环境。 该 COPY
行将存储库的内容复制到容器的 /src/ 目录中。 指定 WORKDIR
生成目录。 该 RUN
命令提供 CMake 命令来生成生成文件。 最后, ENTRYPOINT
指定应调用 ninja 以实际生成应用程序。
生成和调试项目
在 Visual Studio Code 中打开 项目文件夹。 Visual Studio Code 检测到新文件,并打开一个消息框,指出“文件夹包含开发容器配置文件。 重新打开文件夹以在容器中开发。选择“在容器中重新打开”按钮以重新打开由 .devcontainer/Dockerfile 文件创建的容器中的文件夹。 Visual Studio Code 中的标题栏将更改,以显示正在容器中编辑。 如果在左侧导航栏中打开“扩展”选项卡,则会看到本地安装的扩展和容器中安装的扩展。
按 F5 生成项目并开始调试。 应用程序会像往常一样生成并旁加载到设备。 如果在代码中设置了断点,应用将运行,直到到达断点为止。 可以使用常用的调试命令来演练代码。 有关更多详细信息,请参阅 Visual Studio Code 文档中的“调试”主题。
完成调试后,按 Shift+F5 或“停止”图标。 若要关闭容器,请使用 Visual Studio Code 工具栏上远程菜单中的“关闭远程连接”命令。