Не удалось загрузить проект Xamarin Forms с .NET Standard 2.0 Lib в Rider

TL; DR; Поддерживаются ли в Rider проекты Xamarin Forms с библиотекой .NET Standard 2.0?

Я создал небольшой проект Xamarin в Visual Studio 2017.3 (Windows) с помощью мультиплатформенного мастера приложения пустых форм. Microsoft недавно отказалась от возможности создания PCL в версии VS для Windows и предоставляет только .NET Standard. Таким образом, я выбрал тот.

Теперь я хотел опробовать разработку на Mac напрямую с помощью Rider, чтобы мне не приходилось запускать виртуальную машину Windows (мне очень нравится Resharper, поэтому я привязан к Windows на моем Mac)

Когда я открываю этот проект в Rider в Mac OS, он выдает кучу ошибок, и похоже, что все пути перепутались. С другой стороны, открытие его в VS для Mac отлично работает.

Затем я создал новый пустой проект в VS на Mac с помощью PCL, и Райдер открывает его без жалоб. Итак, мой вопрос:
Поддерживаются ли в Rider проекты Xamarin Forms с библиотекой .NET Standard 2.0?

  • Если они поддерживаются: что мне делать, чтобы он работал, не нарушая откат к VS?
  • Если нет: есть ли планы поддержать его в ближайшем будущем?

Некоторые из моих ошибок:

  • Ошибка загрузки: импортированный проект «/usr/local/share/dotnet/sdk/2.0.3/Xamarin/Android/Xamarin.Android.CSharp.targets» не найден. Убедитесь, что путь в объявлении правильный и что файл существует на диске.
  • Целевые объекты MSBuild не найдены: убедитесь, что все пакеты SDK, необходимые для проектов в этом решении, установлены, или укажите другую версию MSBuild в настройках.
  • Xamarin.Android SDK не найден: Райдеру не удалось найти Xamarin SDK на этом компьютере. Проекты на основе Xamarin не загружаются. Установите Xamarin SDK или измените набор инструментов
  • Не удалось загрузить задачу «Xamarin.Forms.Build.Tasks.GetTasksAbi» из сборки /Users/kay/.nuget/packages/xamarin.forms/2.5.0.122203/build/netstandard1.0/Xamarin.Forms.Build. Задачи.dll. Не удалось загрузить файл или сборку Microsoft.Build.Utilities.v4.0, Version = 4.0.0.0, Culture = нейтральный, PublicKeyToken = b03f5f7f11d50a3a. Система не может найти указанный файл.

Я думаю, что могу начать исправлять пути и так далее вручную, но я боюсь делать вещи, которые я не недооцениваю подробно. Я много лет работал с игровым движком Unity, но я новичок в разработке Xamarin.


person Kay    schedule 05.02.2018    source источник
comment
Перейти к файлу | Настройки | Сборка, выполнение, развертывание | Toolset и Build и измените MsBuild с моно. Я предполагаю, что в этом msbuild установлены все целевые объекты Xamarin.   -  person xtmq    schedule 05.02.2018
comment
Но Rider по умолчанию использует .net core msbuild (без целей) для стандартных проектов .net.   -  person xtmq    schedule 05.02.2018
comment
@xtmq: ОТЛИЧНО! Выбор /Library/Frameworks/Mono.framework/Versions/Current/lib/mono/msbuild/15.0/bin/MSBuild.dll вместо / usr / local / share / dotnet / sdk / 2.0.3 / MSBuild.dll помогло, и проект можно было построить. Сначала были ошибки при попытке развернуть на Android. После перезапуска Rider все было нормально. Пожалуйста, оставьте свой комментарий в ответе   -  person Kay    schedule 05.02.2018
comment
Не проблема =) Кроме того, мы внедряем улучшенную версию автоопределения MsBuild, чтобы избежать таких проблем в будущем ... будет поставляться в 2018.1 или 2018.2 =) См. youtrack.jetbrains.com/issue/RIDER-7112   -  person xtmq    schedule 06.02.2018


Ответы (2)


Перейти к файлу | Настройки | Сборка, выполнение, развертывание | Toolset и Build и измените MsBuild с моно. Я предполагаю, что в этом msbuild установлены все целевые объекты Xamarin.

person xtmq    schedule 06.02.2018

Проблема вызвана тем, что Райдер выбрал неправильный файл MSBuild для использования. Пакет SDK для .NET Core устанавливает версию MSBuild, которая не настроена для использования Xamarin SDK.

В Rider перейдите к файлу> Настройки> Сборка, развертывание выполнения> Набор инструментов и сборка> Использовать версию MSBuild. Выберите MSBuild.dll, который не находится в пути к SDK .NET Core:

введите описание изображения здесь

В Windows, которая будет находиться под Microsoft Visual Studio, в MacOS, которая похоже, находится под Mono.framework.

После внесения этого изменения важно полностью перезапустить Rider. После внесения изменений Rider попытается выполнить перестройку и потерпит неудачу. Создается впечатление, что ваше изменение не сработало. Но похоже, что настройка не вступит в силу, пока Rider не будет полностью перезапущен.

person Jade    schedule 27.03.2018
comment
Выбор msbuild v15 решил проблему. Дело в том, что сейчас мы не можем использовать msbuild v16 для проектов Xamarin? - person Amir Hajiha; 10.01.2021