#windows #macos #visual-studio-code #.net-core #launch
#Windows #macos #visual-studio-код #.net-ядро #запуск #visual-studio-code #.net-core
Вопрос:
В 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:
Оказывается, настроить таргетинг на несколько платформ намного проще, чем я ожидал, и это объясняется здесь применительно к 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}"
},
]
}