【问题标题】:Error Visual Studio Code and Omnisharp Extension with .Net Core SDK 3.0 preview带有 .Net Core SDK 3.0 预览的错误 Visual Studio 代码和 Omnisharp 扩展
【发布时间】:2019-07-19 21:30:49
【问题描述】:

如何在 Visual Studio Code 中修复 .Net Core 3.0 项目中的错误?

我已经使用文件夹中的 dotnet new 命令从创建的新项目中下载了 .NET Core 3.0 SDK。

使用 Visual Studio Code 打开项目会出现以下错误:

[失败]:OmniSharp.MSBuild.ProjectLoader 当前的 .NET SDK 不支持面向 .NET Core 3.0。以 .NET Core 2.2 或更低版本为目标,或使用 .NET SDK 版本 支持 .NET Core 3.0。 [警告]:OmniSharp.MSBuild.ProjectManager 无法加载项目文件“c:\Users\Marco\source\Workspaces\WebDevelopment\Samples\hello-world\hello-world.csproj”。 c:\Users\Marco\source\Workspaces\WebDevelopment\Samples\hello-world\hello-world.csproj C:\程序 Files\dotnet\sdk\2.2.102\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.TargetFrameworkInference.targets(137,5): 错误:当前的 .NET SDK 不支持面向 .NET Core 3.0。 以 .NET Core 2.2 或更低版本为目标,或使用 .NET SDK 版本 支持 .NET Core 3.0。

[失败]:OmniSharp.MSBuild.ProjectManager 尝试更新未加载的项目:c:\Users\Marco\source\Workspaces\WebDevelopment\Samples\hello-world\hello-world.csproj

【问题讨论】:

  • 你安装.NET Core SDK 3.0.100-preview-010184了吗?尝试运行命令dotnet --version 来查看当前的sdk。我用 VS Code 做了一个测试,它可以正确打开项目。
  • 我已经安装了 .NET Core SDK 3.0.100-preview4-010525。使用 2.2.1。工作正常。
  • 您应该使用 Visual Studio 而不是 Visual Studio 代码。这是一个 .net 核心项目,对吧?
  • 你也有 Visual Studio 2019 预览版吗?我想你需要那个。然后确保卸载旧 SDK 版本的所有旧 NuGet 包。
  • dotnet.microsoft.com/download/dotnet-core/3.0... 警告横幅显示了与我之前的评论相关的内容。

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


【解决方案1】:

不是解决方案,而是我的解决方法:

我让 OmniSharp 使用 .NET CORE 3.0.100-preview3-010431 处理 Visual 代码,问题似乎来自 OmniSharp.MSBuild.Discovery.MSBuildLocator 使用的 MSBuild 版本。

在可视化代码中,查看您的 OmniSharp 日志:

不确定您是否会喜欢该解决方案,但在 OmniShart 日志中,我读到它使用的是 Visual Studio 2017 MSBuild,并且因为我在 VS 2017 中遇到了 .net Core Preview 3 项目的问题,所以我安装了Visual Studio 社区 2019 RC。我的代码 .NET CORE 3.0 适用于 VS 2019,但我在 Visual Code 中遇到了 OmniSharp 问题。为了让它在可视代码中工作,我只需将 C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MsBuild 重命名为 C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild.disabled,在带有 .NET Core 的可视代码上一切正常。

    Located 3 MSBuild instance(s)
        1: Visual Studio Enterprise 2017 15.9.28307.344 - "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin"
        2: Visual Studio Community 2019 16.0.28714.193 - "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin"
        3: StandAlone 15.0 - "c:\Users\JPB\.vscode\extensions\ms-vscode.csharp-1.17.1\.omnisharp\1.32.8\msbuild\15.0\Bin"
    Registered MSBuild instance: Visual Studio Enterprise 2017 15.9.28307.344 - "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin"

变成:

[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
        Located 2 MSBuild instance(s)
            1: Visual Studio Community 2019 16.0.28714.193 - "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin"
            2: StandAlone 15.0 - "c:\Users\JPB\.vscode\extensions\ms-vscode.csharp-1.17.1\.omnisharp\1.32.8\msbuild\15.0\Bin"
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
        Registered MSBuild instance: Visual Studio Community 2019 16.0.28714.193 - "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin"

结论: Omnisharp 似乎需要一个支持 .net Core 3.0 的 MSBuild。除了 VS 2019,我在其他任何地方都找不到它。

【讨论】:

  • 那么我们如何在没有 VS2019 的情况下构建 net core 3.x 项目呢?除了安装VS2019(或其中的一部分)之外,还有什么办法吗?
  • 你找到方法了吗@psulek?当你使用 ubuntu 时,你没有使用 VS2019 的选项
  • @CaioGomes 我在没有 VS 2019 的 Windows 中遇到了这个错误。所以我安装了 Jetbrains Rider IDE(但它不是免费的)并用它成功构建..
  • 很高兴听到您找到了解决方案。我从 dotnet core 3.0 恢复到 2.2,现在它的工作就像一个魅力。我猜 3.0 对 ubuntu 来说太新了。我在 Windows 上使用 3.0 与 VS2019 一起工作,但它工作正常。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-19
  • 2015-07-22
  • 1970-01-01
  • 1970-01-01
  • 2018-04-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多