我已经在VSCode上安装了dotnet core 3 sdk和OmniSharp 1.18扩展 但是OmniSharp有一个错误: Microsoft.Build.Exceptions.InvalidProjectFileException:找不到指定的SDK“ Microsoft.NET.Sdk.Web”。
答案 0 :(得分:17)
尝试以下解决方法:
将名为 omnisharp.json 的文件添加到您的项目文件夹中,其中包含以下内容
{
"MsBuild": {
"UseLegacySdkResolver": true
}
}
然后重新启动Visual Studio代码
答案 1 :(得分:2)
如果您在Linux或Mac中,将路径添加到.bashrc中的sdk文件夹中或所需的位置:
export MSBuildSDKsPath=$HOME/soft/dev/dotnet/sdk/3.0.100-preview3-010431/Sdks
答案 2 :(得分:2)
我有这个问题,上面的答案都不适合我,我不知道为什么会这样 但我发现了一个小技巧来解决这个问题。
打开你的终端并进入你的项目目录并执行这个命令
code .
是的!从终端打开 vscode 帮我解决这个问题
答案 3 :(得分:1)
v1.18.0-beta7
:https://github.com/OmniSharp/omnisharp-vscode/releases global.json
命令将适当的dotnet new globaljson --sdk-version 2.2.100
文件添加到其根目录中。否则,他们将默认使用.NET Core 3x SDK。如果确实有global.json
,请检查其内容并确保使用正确的版本。您可以使用dotnet --list-sdks
命令找到已安装的版本。答案 4 :(得分:1)
您需要通过Visual Studio安装程序安装“ .Net Core构建工具”,如此处所述-https://github.com/OmniSharp/omnisharp-roslyn/issues/1311#issuecomment-428361674
也可以与Chocolatey一起安装:
Policies:
# Readers:
# Type: Signature
# Rule: "OR('OrdererMSP.member')"
# Writers:
# Type: Signature
# Rule: "OR('OrdererMSP.member')"
# Admins:
# Type: Signature
# Rule: "OR('OrdererMSP.admin')"
Policies:
Readers:
Type: ImplicitMeta
Rule: "ANY Readers"
Writers:
Type: ImplicitMeta
Rule: "ANY Writers"
Admins:
Type: ImplicitMeta
Rule: "MAJORITY Admins"
答案 5 :(得分:1)
Evgy的答案将特别适用于.NET Core Preview 3,但是如果您希望此修复程序适用于.NET Core 3.0或更高版本的发布版本,则可以将以下行添加到.bashrc文件中(假设您使用的是Linux):
export MSBuildSDKsPath="/usr/share/dotnet/sdk/$(dotnet --version)/Sdks"
答案 6 :(得分:1)
我在DotNet Core 3.0和VS Code中遇到了这个问题。智能感知对我不起作用。
我安装了Visual Studio 2019,这导致Omnisharp从以下位置获取MsBuild:
const getAllProfiles = () => {
return new Promise((resolve, reject) => {
Profile.find({activeProfile:true },(profileErr,profileRes)).populate('user').exec((profileErr,profileRes)=>{
if (profileErr) {
console.log('profileErr: ', profileErr);
reject({ status: 500, message: 'Internal Server Error' });
} else {
resolve({ status: 200, message: 'User Profile fetch Successfully.', data: profileRes })
}
});
});
}
在Omnisharp GitHub上遵循一些答案之后,我从以下链接安装了Visual Studio Build Tools 2019: https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools&rel=16
为防止Omnisharp从以前的路径获取MsBuild,我将C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin
文件夹重命名为MsBuild
,以便路径变为:
MsBuild.disabled
现在,当我停止使用VS Code时,Omnisharp从路径C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild.disabled\Current\Bin
而不是以前的路径获取MsBuild。错误消失了,智能感知现在可以正常工作了。
答案 7 :(得分:0)
在项目内的global.json文件中,确保sdk版本与您在系统上安装的版本相同。
答案 8 :(得分:0)
需要针对Ubuntu [20.04] Snap用户的解决方案。
echo 'export MSBuildSDKsPath="/snap/dotnet-sdk/current/sdk/$(dotnet --version)/Sdks"' >> ~/.bashrc
source ~/.bashrc
echo $MSBuildSDKsPath
答案 9 :(得分:0)
这可能非常愚蠢,但在谷歌搜索这个问题几个小时后我放弃了,只是编写了我自己的构建任务来调用 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
}
这可能不是一个正确的方法,但它可以让我运行我的代码并使用调试器的所有功能,所以我想这已经足够了。