首页 > 解决方案 > 使用唯一 ID 自动执行构建任务

问题描述

我已经编写了一些嵌入式代码(使用 VS-Code 作为我的 IDE),可以部署到许多不同的设备上。

该代码包含一个config.h定义唯一device_id需要为每个设备更改的唯一性。

我有一个文件unique_ids.csv,其中包含我需要使用的所有唯一 ID。

VS-Code 可以自动构建我的项目并创建一个名为project_name.bin.

如何设置一个脚本,自动从我的 CSV 文件中获取 uniqe id 并构建一个特定的device_id.bin为每个文件构建一个特定的文件?

我怀疑这可能需要以某种方式使用 Visual Studio 任务。这是我目前的tasks.json

任务.json

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "0.1.0",
    "name": "make",
    "isShellCommand": true,
    "showOutput": "always",
    "problemMatcher": {
        "owner": "cpp",
        "fileLocation": ["relative", "${workspaceRoot}/mbed-os"],
        "pattern": {
            "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
            "file": 1,
            "line": 2,
            "column": 3,
            "severity": 4,
            "message": 5
        }
    },
    "args": ["-j"],
    "linux": {
        "command": "make"
    },
    "osx": {
        "command": "make"
    },
    "windows": {
        "command": "make.exe"
    }
}

标签: visual-studio-codeembedded

解决方案


考虑另一种方法,我可能不会直接回答。

如果您将 csv 用于发布而不是用于调试,为什么要在 VS 中构建发布?我宁愿在 VS 中构建我的调试,并使用带有批处理脚本的命令行构建我的不同版本。

像这样的批处理伪代码

set id_list=unique_ids.csv
set id=
for %%a in (%id_list%) do (
    set "id=%%~na"
    replace in config.h device_id by device_%id%
    make your_project
)

推荐阅读