Проект компилируется, но Omnisharp не видит пакет nuget и выдает ошибку - PullRequest
0 голосов
/ 12 октября 2019

Я нахожусь на Linux ( elementaryOS , на основе Ubuntu) и у меня установлены .NET Core (3.0.100) и Mono (6.4.0.198). Для разработки на C # я использую VS Code с расширением Omnisharp . Я пытаюсь построить пример проекта , используя 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 вместо моно. (Так как мне нужно нацелиться на версию .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 или это просто связанная с этим ошибка.

1 Ответ

0 голосов
/ 12 октября 2019

Проблема исчезла после закрытия и повторного открытия кода VS ?

...