C#扩展(OmniSharp)在VSCode中给出错误的结果

时间:2019-09-30 16:05:33

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

我在VSCode中使用C#扩展时遇到了一些问题。我正在建立一个具有一个依赖项和一个Hello World编写行的基本项目。当我运行dotnet run时,项目将编译并运行而没有问题。但是,C#扩展给了我27个编译问题,所有问题都与System类有关。一个例子是:

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

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

我已经在没有依赖项的情况下尝试过了,它没有任何改变。有趣的是,我不断收到来自VSCode的消息,说有一个未解决的依赖关系,我需要“恢复”。 dotnet restore不能解决它。

错误问题的示例:

False problems

项目:

<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上。

1 个答案:

答案 0 :(得分:1)

我有同样的问题。

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

我的修正:

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

然后在global.json中添加此json代码段:

{
    "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一起使用

希望有帮助。