我已经在VSCode上安装了dotnet core 3 sdk和OmniSharp 1.18扩展,但是OmniSharp出现了错误: Microsoft.Build.Exceptions.InvalidProjectFileException: 指定的SDK 'Microsoft.NET.Sdk.Web'找不到。
我已经在VSCode上安装了dotnet core 3 sdk和OmniSharp 1.18扩展,但是OmniSharp出现了错误: Microsoft.Build.Exceptions.InvalidProjectFileException: 指定的SDK 'Microsoft.NET.Sdk.Web'找不到。
{
"MsBuild": {
"UseLegacySdkResolver": true
}
}
然后重新启动Visual Studio Code
如果您使用的是Linux或Mac系统,请在您的.bashrc
文件中(或其他任何您想要的位置)添加SDK文件夹的路径:
export MSBuildSDKsPath=$HOME/soft/dev/dotnet/sdk/3.0.100-preview3-010431/Sdks
使用以下命令也可以解决相同的问题:dotnet nuget locals all -c
Evgy提供的答案仅适用于.NET Core Preview 3。如果你想使修复程序适用于.NET Core 3.0或更高版本,那么可以在.bashrc文件中添加以下行(假设您使用的是Linux):
export MSBuildSDKsPath="/usr/share/dotnet/sdk/$(dotnet --version)/Sdks"
我有这个问题,但以上的解答都不适用于我,我不知道为什么会出现这个问题,但我找到了一个小技巧来解决。
打开终端并进入您的项目目录,执行以下命令:
code .
是的!从终端打开VSCode解决了我的问题
我在使用DotNet Core 3.0和VS Code时遇到了问题。智能感知功能无法正常工作。
我之前安装了Visual Studio 2019,这导致Omnisharp从以下位置获取MsBuild:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin
MsBuild
文件夹重命名为 MsBuild.disabled
,使路径变为:C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild.disabled\Current\Bin
现在,当我重新启动 VS Code 时,Omnisharp 从路径 C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin
获取 MsBuild,而不是之前的路径。错误已经消失,Intellisense 现在可以正常工作。
UseLegacySdkResolver
是否也能解决这个问题,同时我也很想知道 VS 2019 是否引起了这个问题。在 Github 上有很多类似的问题,很难跟踪。 - KCDchoco install visualstudio2017-workload-netcorebuildtools
v1.18.0-beta7
: https://github.com/OmniSharp/omnisharp-vscode/releasesglobal.json
文件,通过执行dotnet new globaljson --sdk-version 2.2.100
命令。否则,它们将默认使用.NET Core 3x SDK。如果你有一个global.json
,请检查其内容,并确保你正在使用正确的版本。你可以使用dotnet --list-sdks
命令找到已安装的版本。对于Ubuntu [20.04] Snap用户的Neits解决方案。
echo 'export MSBuildSDKsPath="/snap/dotnet-sdk/current/sdk/$(dotnet --version)/Sdks"' >> ~/.bashrc
source ~/.bashrc
echo $MSBuildSDKsPath
这可能非常愚蠢,但在经过几个小时的谷歌搜索后,我放弃了,并编写了自己的构建任务来调用dotnet build
而不是msbuild
到tasks.json
中:
{
"label": "build",
"type": "shell",
"command": "dotnet",
"args": [
"build",
],
"group": "build",
"presentation": {
"reveal": "silent"
},
"problemMatcher": "$msCompile"
}
这是我的launch.json
的启动配置:
{
"name": ".NET Core Launch (console)",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceFolder}/bin/Debug/net5.0/${workspaceFolderBasename}.dll",
"args": [],
"cwd": "${workspaceFolder}",
"console": "integratedTerminal",
"stopAtEntry": false
}
这可能不是一种正确的做法,但它让我运行我的代码并使用调试器的所有功能,所以我想这已经足够好了。
在项目中的global.json文件中,确保SDK版本与您系统上安装的版本相同。
{ "sdk": { "version": "2.1.200" } }
其中版本键的值是目标SDK的版本。 - Sang Auglobal.json
的解决方案对我没有起作用,但是omnisharp.json
却可以。 - amedina