OmniSharp.MSBuild.ProjectManager尝试更新未加载的项目:

时间:2019-04-05 12:15:28

标签: c# asp.net-core visual-studio-code intellisense omnisharp

我开始用VS代码开发Asp.net核心Web API。但是,当我键入代码时,Intellisense / Suggestions无法正常工作。我看到他们在输入using Microsoft.时在互联网上的一些资源中,   EntityFrameworkCore 作为建议显示。但就我而言,它没有显示。在OmniSharp日志中,向我显示以下错误。

Starting OmniSharp server at 4/5/2019, 3:37:16 PM
    Target: c:\Dotnet Core\NgWebApi

OmniSharp server started.
    Path: C:\Users\Acer\.vscode\extensions\ms-vscode.csharp-1.18.0\.omnisharp\1.32.11\OmniSharp.exe
    PID: 13684

[info]: OmniSharp.Stdio.Host
        Starting OmniSharp on Windows 6.2.9200.0 (x64)
[info]: OmniSharp.Services.DotNetCliService
        DotNetPath set to dotnet
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
        Located 1 MSBuild instance(s)
            1: StandAlone 15.0 - "C:\Users\Acer\.vscode\extensions\ms-vscode.csharp-1.18.0\.omnisharp\1.32.11\msbuild\15.0\Bin"
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
        MSBUILD_EXE_PATH environment variable set to 'C:\Users\Acer\.vscode\extensions\ms-vscode.csharp-1.18.0\.omnisharp\1.32.11\msbuild\15.0\Bin\MSBuild.exe'
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
        Registered MSBuild instance: StandAlone 15.0 - "C:\Users\Acer\.vscode\extensions\ms-vscode.csharp-1.18.0\.omnisharp\1.32.11\msbuild\15.0\Bin"
            CscToolExe = csc.exe
            CscToolPath = C:\Users\Acer\.vscode\extensions\ms-vscode.csharp-1.18.0\.omnisharp\1.32.11\msbuild\15.0\Bin\Roslyn
            MSBuildExtensionsPath = C:\Users\Acer\.vscode\extensions\ms-vscode.csharp-1.18.0\.omnisharp\1.32.11\msbuild
            MSBuildToolsPath = C:\Users\Acer\.vscode\extensions\ms-vscode.csharp-1.18.0\.omnisharp\1.32.11\msbuild\15.0\Bin
[info]: OmniSharp.Cake.CakeProjectSystem
        Detecting Cake files in 'c:\Dotnet Core\NgWebApi'.
[info]: OmniSharp.Cake.CakeProjectSystem
        Could not find any Cake files
[info]: OmniSharp.WorkspaceInitializer
        Project system 'OmniSharp.DotNet.DotNetProjectSystem' is disabled in the configuration.
[info]: OmniSharp.MSBuild.ProjectSystem
        No solution files found in 'c:\Dotnet Core\NgWebApi'
[info]: OmniSharp.MSBuild.ProjectManager
        Queue project update for 'c:\Dotnet Core\NgWebApi\NgWebApi.csproj'
[info]: OmniSharp.Script.ScriptProjectSystem
        Detecting CSX files in 'c:\Dotnet Core\NgWebApi'.
[info]: OmniSharp.Script.ScriptProjectSystem
        Could not find any CSX files
[info]: OmniSharp.WorkspaceInitializer
        Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.CSharpWorkspaceOptionsProvider
[info]: OmniSharp.MSBuild.ProjectManager
        Loading project: c:\Dotnet Core\NgWebApi\NgWebApi.csproj
[info]: OmniSharp.WorkspaceInitializer
        Configuration finished.
[info]: OmniSharp.Stdio.Host
        Omnisharp server running using Stdio at location 'c:\Dotnet Core\NgWebApi' on host 17188.
[warn]: OmniSharp.MSBuild.ProjectManager
        Failed to load project file 'c:\Dotnet Core\NgWebApi\NgWebApi.csproj'.
c:\Dotnet Core\NgWebApi\NgWebApi.csproj(1,1)
Microsoft.Build.Exceptions.InvalidProjectFileException: The SDK 'Microsoft.NET.Sdk.Web' specified could not be found.  c:\Dotnet Core\NgWebApi\NgWebApi.csproj
   at Microsoft.Build.Shared.ProjectErrorUtilities.ThrowInvalidProject(String errorSubCategoryResourceName, IElementLocation elementLocation, String resourceName, Object[] args)
   at Microsoft.Build.Evaluation.Evaluator`4.ExpandAndLoadImportsFromUnescapedImportExpressionConditioned(String directoryOfImportingFile, ProjectImportElement importElement, List`1& projects, Boolean throwOnFileNotExistsError)
   at Microsoft.Build.Evaluation.Evaluator`4.ExpandAndLoadImports(String directoryOfImportingFile, ProjectImportElement importElement)
   at Microsoft.Build.Evaluation.Evaluator`4.EvaluateImportElement(String directoryOfImportingFile, ProjectImportElement importElement)
   at Microsoft.Build.Evaluation.Evaluator`4.PerformDepthFirstPass(ProjectRootElement currentProjectOrImport)
   at Microsoft.Build.Evaluation.Evaluator`4.Evaluate(ILoggingService loggingService, BuildEventContext buildEventContext)
   at Microsoft.Build.Evaluation.Project.Reevaluate(ILoggingService loggingServiceForEvaluation, ProjectLoadSettings loadSettings)
   at Microsoft.Build.Evaluation.Project.ReevaluateIfNecessary(ILoggingService loggingServiceForEvaluation, ProjectLoadSettings loadSettings)
   at Microsoft.Build.Evaluation.Project.Initialize(IDictionary`2 globalProperties, String toolsVersion, String subToolsetVersion, ProjectLoadSettings loadSettings)
   at Microsoft.Build.Evaluation.Project..ctor(String projectFile, IDictionary`2 globalProperties, String toolsVersion, String subToolsetVersion, ProjectCollection projectCollection, ProjectLoadSettings loadSettings)
   at Microsoft.Build.Evaluation.ProjectCollection.LoadProject(String fileName, IDictionary`2 globalProperties, String toolsVersion)
   at OmniSharp.MSBuild.ProjectLoader.EvaluateProjectFileCore(String filePath)
   at OmniSharp.MSBuild.ProjectLoader.BuildProject(String filePath)
   at OmniSharp.MSBuild.ProjectFile.ProjectFileInfo.Load(String filePath, ProjectLoader loader)
   at OmniSharp.MSBuild.ProjectManager.LoadOrReloadProject(String projectFilePath, Func`1 loader)

[fail]: OmniSharp.MSBuild.ProjectManager
        Attempted to update project that is not loaded: c:\Dotnet Core\NgWebApi\NgWebApi.csproj

我重新安装了VS Code和C#C# Extention来解决此问题,但是这种情况仍在发生。我认为原因是未显示Intellisense / Suggestions项目未正确加载。谁能告诉我如何避免此错误以及如何解决未显示问题的Intellisense /建议。

11 个答案:

答案 0 :(得分:20)

我通过在VSCode上执行以下操作解决了此问题:

  1. 转到设置。 (首选项-> Mac上的设置)
  2. 搜索“ omnisharp”。
  3. 找到“ Omnisharp:使用全局单声道”部分。
  4. 将其设置为“始终”。
  5. 重新加载窗口。

答案 1 :(得分:1)

我通过升级Mono项目版本解决了这个问题 https://www.mono-project.com/

答案 2 :(得分:0)

为解决这个问题,我做了几个任务。首先,我通过安装Beta版本降级了OmniSharp版本。将该版本的.vsix文件下载到我的计算机上。使用以下步骤将.vsix安装到Visual Studio Code中。

  1. 打开Visual Studio代码,然后从菜单中选择“查看”->“扩展”以显示“扩展”窗格
  2. 通过点击“扩展程序”窗格右上角的 ... ,然后在菜单上选择“ Install from VSIX...”。
  3. 找到.vsix我下载并打开的文件
  4. 然后重新启动vs代码

但是问题仍然存在,因此我将.Net核心SDK v2.2.202版本降级为2.1.202,并解决了问题。

答案 3 :(得分:0)

已解决(在Ubuntu 16.04和CentOS 7上交叉检查):

在“ VS代码”菜单中,进入“文件” /“首选项” /“设置”。

在“搜索设置”窗口中,输入 omnisharp.path

点击“在settings.json中编辑”链接。

添加(或修改)如下:“ omnisharp.path”:“最新”

(来自:https://github.com/OmniSharp/omnisharp-vscode/issues/2965

答案 4 :(得分:0)

已解决:检查是否已安装Visual Studio Build Packages,如果已安装,则将其卸载。卸载VScode后,它将立即正常工作,并且将恢复智能感知功能。 祝你好运!

答案 5 :(得分:0)

我在Mac上同时安装了VSCode和Visual Studio。使用此official guide卸载Visual Studio解决了该问题。

答案 6 :(得分:0)

我也面临着同样的问题。如果上述解决方案均无效,则可以尝试以下解决方案。

在查看日志时,我意识到了真正的问题: “找不到指定的SDK'Microsoft.NET.Sdk'。”

我从此处(6.8.0)安装了最新的稳定版Mono: https://www.mono-project.com/download/stable/

然后打开〜bash_profile并导出mono的框架路径: 导出FrameworkPathOverride = / Library / Frameworks / Mono.framework / Versions / Current

对我来说很好。希望它也对您有用。

答案 7 :(得分:0)

这是在Windows10最新更新之后开始发生的。

重新安装 .NET Core运行时,现在一切正常。

答案 8 :(得分:0)

这可能会失败的另一个原因是,当您安装了 Visual Studio 2019 16.7 or below 时,因为 OmniSharp 需要来自 16.8 的 MsBuild。

使用 Visual Studio 安装程序更新 Visual Studio 为我解决了这个问题,当我使用替换机器时,它现在处于休眠状态。

答案 9 :(得分:0)

如果您使用 snap / ubuntu 软件安装了 SDK.. 这就是导致我出现相同错误的原因。我回答了我自己的类似问题 here

答案 10 :(得分:0)

我找到了另一个解决方案,因为其他解决方案都不适合我,而且我搜索了几个小时。(07/08/2021):

我在 .NET、.NET Core 或 .NET Framework 上遇到了同样的错误,以下是一些错误截图:

Error popup

Error output

在错误输出中,它说要为此框架版本安装开发人员包。您可以在 .csproj 文件中找到版本:

enter image description here

通过在 dotnet microsoft 站点上安装此版本的 .NET Framework:.NET Framework download list 我在重新加载 VSCode 后修复了错误并使我的 Intellisense 为 Unity 工作。

TLDR: 我的修复是安装 .NET Framework 4.7.1 版