Изменение целевого фреймворка в приложении Xamarin.forms с Android 8.1 на Android 9 (для Xamarin.Essentials) - PullRequest
2 голосов
/ 15 апреля 2019

Я создал приложение Xamarin.Forms, используя шаблон проекта из Visual Studio 2019. В проекте созданы цели для Android 8.1 (Oreo).

Поскольку я хочу использовать функцию SecureStorage в Xamarin.Essentials, я должен установить целевую платформу на Android 9.

При замене целевого фреймворка на новый, я получил сообщение об ошибке, в котором говорится, что мне необходимо загрузить все пакеты Android той же версии.

Current

Проблема в том, что я не могу обновить пакеты до v28.0.0.1 после изменения целевой платформы.

Version conflict detected for Xamarin.Android.Support.Compat. 
Install/reference Xamarin.Android.Support.Compat 28.0.0.1 directly to project MyApp.Android to resolve this issue. 
MyApp.Android -> Xamarin.Forms 3.6.0.293080 -> Xamarin.Android.Support.CustomTabs 28.0.0.1 -> Xamarin.Android.Support.Compat (= 28.0.0.1) 
MyApp.Android -> Xamarin.Android.Support.v7.AppCompat 27.0.2.1 ->    Xamarin.Android.Support.Compat (= 27.0.2.1).   
MyApp.Android   C:\Users\User\source\repos\MyApp\MyApp\MyApp.Android\MyApp.Android.csproj`  

Я пытался, но не смог установить пакет с именем Xamarin.Android.Support.Compat (version 28.0.0.1). Кроме того, открытие .csproj и ручная замена номера версии с 27.0.2.1 на 28.0.0.1 дает мне кучу ошибок из XML-файла конфигурации проекта MyApp.Android.


Как я могу решить эту проблему? Мне нужно настроить таргетинг на Android 9 из-за того, что работает наджет Xamarin.Essentials, но мне нужно обновить текущие нюансы Android.Support до 28.0.0.1 перед этим.

1 Ответ

1 голос
/ 15 апреля 2019

У меня возникла та же проблема, и я решил ее, вручную отредактировав ссылки на nuget.

Вариант 1: Если вы используете package.config, откройте файл и вручную отредактируйте версию до нужного значения, как показано вПример ниже

<packages>
  <package id="Xamarin.Android.Support.Design" version="28.0.0.1" targetFramework="net46" />
</packages>

Вариант 2. Если вы используете ссылки на пакеты, вам нужно отредактировать файл .csproj. В VS2019 просто дважды щелкните его в обозревателе решений.В более ранней версии вы должны сначала выгрузить его или открыть текстовый редактор.Затем отредактируйте раздел по вашему желанию

    <ItemGroup>
      <PackageReference Include="Xamarin.Android.Support.Design" Version="28.0.0.1" />
    </ItemGroup>

Может быть, тоже работает принудительное обновление: https://docs.microsoft.com/en-us/nuget/consume-packages/reinstalling-and-updating-packages

...