项目构建但 Omnisharp 没有看到 nuget 包并显示错误

Project builds but Omnisharp doesn't see a nuget package and shows error

我在 linux(elementaryOS, Ubuntu-based) and have both .NET Core (3.0.100) and Mono (6.4.0.198) installed. For C# development I use VS Code with the Omnisharp extension. I'm trying to build a sample project 使用 Xamarin.Forms。

我的问题是,尽管 我可以使用 Mono 成功构建项目,但 Omnisharp 抱怨缺少 Xamarin.Forms 参考:

The type or namespace name 'Forms' does not exist in the namespace 'Xamarin' (are you missing an assembly reference?) (CS0234)

我查过了,它包含在 .csproj:

<ItemGroup>
  <PackageReference Include="Xamarin.Forms" Version="4.2.0.709249" />
</ItemGroup>

我怀疑 Omnisharp 可能会尝试与 .NET Core 而不是 Mono 进行通信。 (因为我需要针对一个版本的 .NET Framework,所以我必须使用 Mono 构建它。)这就是我使用 Mono 构建项目的方式:

$ nuget restore
$ cd GameOfLife/GameOfLife
$ msbuild
$ cd ../GameOfLife.Android
$ msbuild /t:Build,Install

我知道我不可能使用 .NET Core 构建项目,但我至少尝试了获取 nuget 包:

$ dotnet restore
→ ./GameOfLife/GameOfLife/GameOfLife.Android/GameOfLife.Android.csproj :
  warning NU1503: Skipping restore for project './GameOfLife/GameOfLife
  /GameOfLife.Android/GameOfLife.Android.csproj'. The project file may be
  invalid or missing targets required for restore. [./GameOfLife/GameOfLife.sln]

$ cd GameOfLife/GameOfLife.Android
$ dotnet restore
→ (nothing happened)

$ dotnet add GameOfLife.Android.csproj package Xamarin.Forms
→ ./GameOfLife/GameOfLife/GameOfLife.Android/GameOfLife.Android.csproj(85,3):
  error MSB4019: The imported project "/usr/share/dotnet/sdk/3.0.100/Xamarin
  /Android/Xamarin.Android.CSharp.targets" was not found. Confirm that the path
  in the <Import> declaration is correct, and that the file exists on disk.
→ Unable to create dependency graph file for project 'GameOfLife.Android.csproj'.
  Cannot add package reference.

最后一个错误的意思是Xamarin.Android只为Mono安装(不可能为.NET Core安装),但我不知道是否这会阻止安装 Xamarin.Forms,或者它是否只是一个不相关的错误。

关闭并重新打开 VS Code 后问题消失了