共用方式為


使用容器搭配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 指定應該叫用忍者來實際建置應用程式。

建置和偵錯專案

在 Visual Studio Code 中開啟 專案資料夾。 Visual Studio Code 會偵測新的檔案,並開啟消息框,指出「資料夾包含開發容器組態檔。 重新開啟資料夾以在容器中開發。」選取 [在容器中重新開啟] 按鈕,以重新開啟 .devcontainer/Dockerfile 檔案所建立容器中的資料夾。 Visual Studio Code 中的標題列會變更,以顯示您要在容器中編輯。 如果您在左側導覽列中開啟 [延伸模組] 索引標籤,您會看到本機安裝的延伸模組,以及安裝在容器中的延伸模組。

按 F5 建置項目並開始偵錯。 您的應用程式會像往常一樣建置並側載到您的裝置。 如果您已在程式代碼中設定斷點,應用程式會執行直到到達斷點為止。 您可以使用一般偵錯命令來逐步解說程式代碼。 如需詳細資訊,請參閱 Visual Studio Code 檔中的偵錯主題。

當您完成偵錯時,請按 Shift+F5 或 [停止] 圖示。 若要關閉容器,請使用 Visual Studio Code 工具列上 [遠端] 選單上的 [關閉遠端連線] 命令。