【问题标题】:C# Extension (OmniSharp) gives false results in VSCodeC# Extension (OmniSharp) 在 VSCode 中给出错误的结果
【发布时间】:2019-09-30 16:05:33
【问题描述】:

我在使用 VSCode 中的 C# 扩展时遇到了一些问题。我正在设置一个基本项目,其中包含一个依赖项和一个 Hello World 写入行。当我运行dotnet run 时,项目编译并运行没有问题。然而,C# 扩展给了我 27 个编译问题,都与系统类有关。一个例子是:

Predefined type 'System.String' is not defined or imported (CS0518)

...即使系统被标记为Unnecessary using directive. (CS8019)dotnet 的信息与扩展提供给我的信息之间似乎存在差异。之前有过类似的问题,建议更新 VSCode 或扩展。不幸的是,这似乎没有帮助。

我已经在没有依赖的情况下尝试过了,这并没有改变任何东西。有趣的是,我不断收到来自 VSCode 的消息,即存在未解决的依赖关系,我需要“恢复”。 dotnet restore 并没有修复它。

错误问题示例:

项目:

<Project Sdk="Microsoft.NET.Sdk">

   <PropertyGroup>
      <OutputType>Exe</OutputType>
      <TargetFramework>netcoreapp3.0</TargetFramework>
      <RootNamespace>project</RootNamespace>
   </PropertyGroup>

   <ItemGroup>
      <PackageReference Include="Hashgraph" Version="3.0.0" />
   </ItemGroup>

</Project>

不同组件的版本:

> dotnet --version
3.0.100
> mono --version
Mono JIT compiler version 6.4.0.198 (tarball Wed Sep 25 00:24:09 BST 2019)
> msbuild
Microsoft (R) Build Engine version 16.1.85+gad9c9926a7

编辑:顺便说一句,我在 MacOS 上。

【问题讨论】:

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


    【解决方案1】:

    我遇到了同样的问题。

    C# 1.21.3 扩展似乎与 dotnet core 3.0.100 不兼容。

    我的修复:

    我安装了 dotnet core 2.2 并在项目中添加了一个 global.json 文件,与 .csproj 文件处于同一级别。

    然后在global.json里面添加这个json sn-p:

    {
        "sdk": {
          "version": "2.2.402"
        }
    }
    

    然后我跑了:

    dotnet restore, 
    dotnet clean, 
    dotnet build 
    

    我想我们将不得不等待 dotnet core 3 扩展的修复

    更新: 我在另一篇文章中读到删除以前安装的 dotnet SDK 可以解决这个问题。我在 Ubuntu 18.04 上,安装了 2.1、2.2 和 3.0。我删除了 2.1 和 2.2 现在扩展正在使用 3.0

    希望对您有所帮助。

    【讨论】:

    • 感谢您分享您的经验。我之前安装了以前的版本,但删除了它们。这似乎并没有解决问题,也许我应该尝试删除所有 dotnet 版本和扩展并重新安装作为最后的努力。现在我将使用 Visual Studio(常规),它可以正常工作!
    猜你喜欢
    • 1970-01-01
    • 2023-03-25
    • 2018-01-18
    • 1970-01-01
    • 1970-01-01
    • 2020-12-10
    • 2017-09-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多