如何使用launch.json定位平台

时间:2019-03-04 11:39:47

标签: windows macos visual-studio-code .net-core launch

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"条目开头,但是在macOS上,我希望它以注释掉的行开头。

我假设我将分别对Windows和Mac重复一次配置,但是此语句令人困惑:

  

您可以替换上述针对特定操作系统的任何字段。

似乎是在说我可以将"args"替换为"osx",但这显然行不通。

如何为目标平台创建配置?

1 个答案:

答案 0 :(得分:0)

事实证明,针对多个平台进行定位比我预期的要容易得多,并且对于tasks.json文件而言,explained here的使用(但对于launch.json而言却是相同的)。

针对osxwindows进行调整的我的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",
            "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}"
        },
    ]
}