将 Xamarin.forms 应用程序上的目标框架从 Android 8.1 更改为 Android 9(针对 Xamarin.Essentials)
Changing target framework on Xamarin.forms app from Android 8.1 to Android 9 (for Xamarin.Essentials)
我使用 Visual Studio 2019 年的项目模板创建了一个 Xamarin.Forms
应用程序。
该项目创建了目标 Android 8.1 (Oreo)。
由于我想使用 Xamarin.Essentials 的 SecureStorage 功能,我必须将目标框架设置为 Android 9.
用较新的目标框架替换目标框架时,出现错误提示我需要下载所有 Android 个相同版本的包。
问题是更改目标框架后我无法将软件包更新到 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
会给我带来一堆来自 MyApp.Android 项目的配置 xml 的错误。
我该如何解决这个问题?我需要将 Android 9 作为目标,因为 Xamarin.Essentials nuget 可以工作,但我需要在此之前将当前的 Android.Support nuget 更新为 28.0.0.1。
我确实遇到了同样的问题并通过手动编辑我的 nuget 引用解决了它。
选项 1:
如果您使用 packages.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
我使用 Visual Studio 2019 年的项目模板创建了一个 Xamarin.Forms
应用程序。
该项目创建了目标 Android 8.1 (Oreo)。
由于我想使用 Xamarin.Essentials 的 SecureStorage 功能,我必须将目标框架设置为 Android 9.
用较新的目标框架替换目标框架时,出现错误提示我需要下载所有 Android 个相同版本的包。
问题是更改目标框架后我无法将软件包更新到 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
会给我带来一堆来自 MyApp.Android 项目的配置 xml 的错误。
我该如何解决这个问题?我需要将 Android 9 作为目标,因为 Xamarin.Essentials nuget 可以工作,但我需要在此之前将当前的 Android.Support nuget 更新为 28.0.0.1。
我确实遇到了同样的问题并通过手动编辑我的 nuget 引用解决了它。
选项 1: 如果您使用 packages.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