【问题标题】:OmniSharp.MSBuild.ProjectManager Attempted to update project that is not loaded:OmniSharp.MSBuild.ProjectManager 尝试更新未加载的项目:
【发布时间】:2019-08-27 08:16:51
【问题描述】:

我开始使用 VS 代码开发 Asp.net Core 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/Suggestions。

【问题讨论】:

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


    【解决方案1】:

    为了解决这个问题,我做了几件事。首先,我通过安装他们的测试版来降级OmniSharp 版本。将该版本的.vsix 文件下载到我的机器上。使用以下步骤将.vsix 安装到 Visual Studio Code 中。

    1. 打开 Visual Studio Code 并从菜单中选择 View->Extensions 以显示 Extensions 窗格
    2. 点击扩展面板右上角的...,然后在菜单中选择“Install from VSIX...”。
    3. 找到我下载的文件.vsix并打开它
    4. 然后重启vs代码

    但是问题还是出现了,于是我将.Net coreSDK v2.2.202版本降级为2.1.202,问题就解决了。

    更新:重新安装 VS Code 后不得不再次遇到同样的问题,解决方式。

    1. 在 Visual Studio 代码菜单中,进入 文件 > 首选项 > 设置。或按 Ctrl+++,

    2. 搜索设置字段中,输入omnisharp.path

    3. 点击在settings.json中编辑

    在那里像这样添加/编辑,

    {
      "omnisharp.path": "latest"
    }
    

    如果您的 settings.json 中已经有条目,请在最后一个后面加一个逗号并添加如下行:

    {
      "workbench.colorTheme": "Solarized Light",
      "omnisharp.path": "latest"
    }
    

    最后,保存 settings.json

    您会看到一个提示:“OmniSharp 配置已更改。您要使用更改重新启动 OmniSharp 服务器吗?”点击“重启 OmniSharp”按钮重新加载。

    在“输出”窗口中,您可以在下载最新版本的同时查看更新

    【讨论】:

      【解决方案2】:

      实际上,omnisharp 路径对我不起作用。我在mac上。我最终所做的是下载早期版本的 .net,而不是最新的 5。

      https://dotnet.microsoft.com/download/dotnet/thank-you/sdk-3.0.103-macos-x64-installer

      【讨论】:

        【解决方案3】:

        我找到了另一个解决方案,因为其他解决方案都不适合我,我正在寻找几个小时。(2021 年 7 月 8 日):

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

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

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

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

        【讨论】:

        【解决方案4】:

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

        【讨论】:

          【解决方案5】:

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

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

          【讨论】:

            【解决方案6】:

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

            1. 进入设置。 (代码 -> 首选项 -> Mac 上的设置)
            2. 搜索“omnisharp”。
            3. 找到“Omnisharp:使用全局单声道”部分并将其设置为“始终”。
            4. 找到“Omnisharp:路径”部分,然后单击“在 settings.json 中编辑”。将“omnisharp.path”更改为“omnisharp.path”:latest”。
            5. 重新加载窗口。

            【讨论】:

            • 你拯救了我的一天。我从一个月开始就一直在寻找解决方案。
            • 这为我指明了正确的方向,但我必须将其设置为“从不”。我想是因为我同时安装了 core 3.1 和 core 5。看起来我需要本地的 Mono,而不是全局的。 – RailinginDFW 1 小时前
            • 在它起作用之前我必须做这两件事:1.从上面的答案中,将设置更改为"omnisharp.path": "latest",然后它将 OmniSharp 下载到我的 VSCode 副本中。然后 2. Use global mono: always 就像你建议的那样。这是一个集体的努力。谢谢!
            • 我按照@Marquizzo 的描述做了,我已经加载了核心 3.1 和核心 5。
            • 我根据您的建议编辑了答案@Marquizzo。我认为使用“omnisharp.path”:“latest”会更强大,因为没有它有时会再次出现问题。
            【解决方案7】:

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

            重新安装 .NET Core Runtime,现在一切正常。

            【讨论】:

              【解决方案8】:

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

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

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

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

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

              【讨论】:

                【解决方案9】:

                我的 Mac 上同时安装了 VSCode 和 Visual Studio。使用 official guide 卸载 Visual Studio 解决了这个问题。

                【讨论】:

                  【解决方案10】:

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

                  【讨论】:

                  • 这很有效,实际上是 Unity for Visual Studio Code 指南推荐的。
                  • 请注意,如果您安装了 Visual Studio for Mac 并启用了自动更新,它将下载高于 Mono 网站上为“Visual Studio 频道”指定的版本的 Mono MDK .除此之外,让它在我的情况下工作的关键是卸载/重新安装“C#”扩展,然后按照 egesolution 设置 VS 代码设置“Omnisharp:使用全局单声道”到“总是”。现在这两个 IDE 都按预期工作了。
                  【解决方案11】:

                  已解决:检查是否安装了 Visual Studio Build Packages,如果安装则将其卸载。只要卸载 VScode 就可以正常工作,智能感知功能就会回来。 祝你好运!

                  【讨论】:

                  • 已针对 Visual Studio Code 1.40.2(用户设置)、.NET Core 3.1 控制台应用程序和 Windows 10 Pro 1803 进行了验证
                  【解决方案12】:

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

                  在 VS Code 菜单中,进入 File / Preferences / Settings。

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

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

                  像这样添加(或编辑):"omnisharp.path": "latest"

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

                  【讨论】:

                  • 这个解决方案对我有用:Win 10, VSCode: 1.32.3 and .Net Core 2.2.301
                  • Mac OS X 10.15 running VS Code 1.40.2 我的 settings.json 没有这个条目。一旦我添加它,omnisharp 就会自行重新安装,瞧,intellisense 又回来了。谢谢@BernieB
                  • 我这样做了,但没有解决问题。
                  • 我昨天在我的 Ubuntu 20.04 系统上升级了 dotnet 包。似乎有一个突破性的变化影响了omnisharp。但是,最新版本的 omnisharp 可以与较新的 dotnet 包配合使用。设置"omnisharp.path": "latest" 导致VS Code 自动为我更新omnisharp,从而解决了智能感知问题。
                  • 修复了智能感知,但没有修复“OmniSharp.MSBuild.ProjectManager 尝试更新未加载的项目”错误。请参阅下面关于将 Omnisharp Use Global Mono 设置为“始终”的答案。
                  猜你喜欢
                  • 1970-01-01
                  • 2021-05-16
                  • 2020-03-28
                  • 2017-03-12
                  • 1970-01-01
                  • 1970-01-01
                  • 2021-08-22
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多