C# - VS 代码 - launch:program ...不存在

C# - VS Code - launch:program ... does not exist

我正在尝试在 VS Code 中调试一个简单的 "Hello world" 应用程序,但是,当我按下 Ctrl + F5 时,出现以下错误:

如果我手动更改 launch.json 中的路径:

${workspaceFolder}/bin/Debug/insert-target-framework-here/insert-project-name-here.dll

收件人:

"${workspaceFolder}/bin/Debug/netcoreapp2.1/test.dll"

它确实可以工作,但是在没有我手动输入路径的情况下它工作正常。另外,我注意到 VS Code 不再像以前那样要求重建资产:

到目前为止,我已经尝试了以下方法:

先卸载 VS Code,再卸载 .NET Core 2.1,从 %USER%\.vscode\ 删除 VS Code 扩展文件夹,重新安装 VS Code,再安装 .NET Core 2.1,再安装 C#扩展(C# for Visual Studio 代码(由 OmniSharp 提供支持))。

当 VS Code 启动时,它确实成功下载了 "OmniSharp" 包,但是当我打开 C# 文件时仍然没有提示重建资产。调试给出了与以前相同的问题。

这是launch.json:

"version": "0.2.0",
"configurations": [
    {
        "name": ".NET Core Launch (console)",
        "type": "coreclr",
        "request": "launch",
        "preLaunchTask": "build",
        "program": "${workspaceFolder}/bin/Debug/<insert-target-framework-here>/<insert-project-name-here>.dll",
        "args": [],
        "cwd": "${workspaceFolder}",
        "console": "internalConsole",
        "stopAtEntry": false,
        "internalConsoleOptions": "openOnSessionStart"
    }

和 tasks.json:

    "version": "2.0.0",
"tasks": [
    {
        "label": "build",
        "command": "dotnet build",
        "type": "shell",
        "group": "build",
        "presentation": {
            "reveal": "silent"
        },
        "problemMatcher": "$msCompile"
    }
]
}

因为你用“<”和“>”标记了“.dll”,这意味着你已经赋予了它一个值。 最简单的方法是在 VSCode 中打开项目并使用 find&replace 替换: 使用我相信它的项目名称:"test" 根据 .dll 名称

我切换到 MS Visual Studio,因为我没有找到任何其他解决方案。

像这样配置您的 Launch.json Gist

并且不需要 Tasks.json ,您可以按 F5 自行构建或配置,按 F5 时默认 shell 的命令应为 运行

我找到了适合我的解决方案。 我的 VS Code 给了我同样的错误信息,我修复它的方法是:

- Press the combination Ctrl + Shift + P
- Restart Omnisharp
- Then it asks if you want to add missing files for build.
- Click Yes.

之后我就可以调试我的应用程序了。

希望对你有用!

// "program": "${workspaceFolder}/bin/Debug/<insert-target-framework-here>/<insert-project-name-here>.dll",
   "program": "${workspaceFolder}/bin/Debug/netcoreapp3.1/csharp_multi_threads.dll",

您需要根据提示更改程序值

访问项目文件夹中的 \bin\Debug\netcoreapp3.1(在 VS 中打开)

在 VS 中转到 launch.json 文件:

替换: "程序": "${workspaceFolder}/bin/Debug//.dll",

: “程序”:“${workspaceFolder}/bin/Debug/netcoreapp3.1/CSharp.dll”,

在某些情况下,该项目称为 CSharp。小心。

我有同样的错误。调试器正在 ${workspaceFolder}/bin/Debug/netcoreapp3.1/myApp.dll 中寻找 .dll 文件,但该文件位于 ${workspaceFolder}/bin/MCD/Debug/netcoreapp3.1/tradeAppl.dll

更改launch.json文件后读取

...
"program": "${workspaceFolder}/bin/MCD/Debug/netcoreapp3.1/tradeAppl.dll",
...

我能够毫无问题地调试应用程序。

-右键单击项目名称并单击在资源管理器中显示 -在文件夹名称后复制 Url 在资源管理器中 例如我的文件夹地址是 D:\IOT\Projects\LWSIOT_WebApiWM2\LWSIOT_WebApiWM2\LWSIOT_WebApiWM2\bin\Debug\netcoreapp3.1\LWSIOT_WebApiWM2.dll 在 Launch.json 中: ${workspaceFolder}/LWSIOT_WebApiWM2/LWSIOT_WebApiWM2/bin/Debug/netcoreapp3.1/LWSIOT_WebApiWM2.dll - 在“程序”上粘贴 Launch.json:“” -点击调试就OK了

在 launch.json 中,替换 :

"程序": "${workspaceFolder}/Api/bin/Debug/netcoreapp3.1/Api.dll",

与:

“程序”:“${workspaceFolder}/Api/bin/linux/Debug/netcoreapp3.1/Api.dll”

由于我是 运行 在 Linux 机器上编写代码,所以我应该提供 Linux 文件夹路径

一定是 launch.json 文件的 program 属性 中的 dll 路径有问题。

在我的例子中,它在版本升级后仍然包含旧的.net core framework 版本。