Как ориентироваться на платформы с launch.json - PullRequest
0 голосов
/ 04 марта 2019

В omnisharp ReadMe говорится следующее:

Конфигурации, специфичные для операционной системы

Если существуют конкретные команды, которые необходимо изменить вВ операционной системе вы можете использовать поля: «windows», «osx» или «linux».Вы можете заменить любое из полей, указанных выше, для конкретной операционной системы.

Это мой launch.json файл:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": ".NET Core Launch (console)",
            "type": "coreclr",
            "request": "launch",
            "preLaunchTask": "build",
            "program": "${workspaceFolder}/TestConsole/bin/Debug/netcoreapp2.1/TestConsole.dll",
            "args": [
                "c:\\git\\core\\XunitTestLib\\Steps\\",
                // "~/../../XunitTestLib/Steps"
            ],
            "cwd": "${workspaceFolder}/TestConsole",
            "console": "internalConsole",
            "stopAtEntry": false,
            "internalConsoleOptions": "openOnSessionStart"
        },
        {
            "name": ".NET Core Attach",
            "type": "coreclr",
            "request": "attach",
            "processId": "${command:pickProcess}"
        },
    ]
}

При отладке я хочу, чтобы сборки на Windowsначните с записи "args", которая не закомментирована, но в Mac OS я хочу, чтобы она начиналась с закомментированной строки.

Я предполагаю, что я продублирую конфигурацию, один раз для Windows и Mac,каждый, но это утверждение сбивает с толку:

Вы можете заменить любое из полей, упомянутых выше, для конкретной операционной системы.

Похоже, что я могу заменить"args" с "osx", но это, очевидно, не работает.

Как создать конфигурацию для целевой платформы?

1 Ответ

0 голосов
/ 05 марта 2019

Оказывается, что нацеливание на несколько платформ намного проще, чем я ожидал, и объясняется здесь в отношении файла tasks.json (но работает точно так же для launch.json).

Мой файл launch.json, настроенный на osx и windows, будет выглядеть так:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": ".NET Core Launch (console)",
            "type": "coreclr",
            "request": "launch",
            "preLaunchTask": "build",
            "program": "${workspaceFolder}/TestConsole/bin/Debug/netcoreapp2.1/TestConsole.dll",
            "windows": {
                "args": [
                    "c:\\git\\core\\XunitTestLib\\Steps\\"
                ]
            },
            "osx": {
                "args": [
                    "~/../../XunitTestLib/Steps"
                ]
            },
            "cwd": "${workspaceFolder}/TestConsole",
            "console": "internalConsole",
            "stopAtEntry": false,
            "internalConsoleOptions": "openOnSessionStart"
        },
        {
            "name": ".NET Core Attach",
            "type": "coreclr",
            "request": "attach",
            "processId": "${command:pickProcess}"
        },
    ]
}
...