更新 Xamarin 的问题:无法解决依赖关系
Issues updating Xamarin: unable to resolve dependencies
我最近决定更新 Xamarin 工作区中的所有内容,包括所有 NuGet 包和 Xamarin.Forms。
我首先安装了所有最新的 Xamarin.Android.Support
软件包,这与我现有的 Xamarin.Forms 当前版本冲突,所以我决定无论如何都需要更新 Xamarin.Forms。我删除了它并安装了所有其他软件包(效果很好),现在我试图再次重新安装 Xamarin.Forms,但我收到:
Unable to resolve dependencies. 'Xamarin.Android.Support.Design 23.4.0.1' is not compatible with 'Xamarin.Forms 2.3.0.107 constraint: Xamarin.Android.Support.Design (= 23.3.0)'.
有什么建议吗?
我在这里引用 Xamarin Forums 的 James Montemagno。
Xamarin.Forms locks in a very specific version of the support
libraries and google play services. You can't update them because
Xamarin.Forms isn't compatible with them as it would need to be
re-compiled.
Xamarin.Android.Support.v4 (= 23.0.1.3) Xamarin.Android.Support.Design
(= 23.0.1.3) Xamarin.Android.Support.v7.AppCompat (= 23.0.1.3)
Xamarin.Android.Support.v7.CardView (= 23.0.1.3)
Xamarin.Android.Support.v7.MediaRouter (= 23.0.1.3)
See the = 23.0.1.3, which means it is only compatible with that
version number. This is just how NuGet works. When Xamarin.Forms
updates these packages will auto update.
Forms 获得 'linked' 到特定版本的 Android 库,因此可以保证它可以正常工作。此时,Xamarin.Forms(稳定版)尚未更新为使用最新的 Android 支持包。因此,您可能想要使用较旧版本的 Forms,或者检查是否有 Forms 预发布版本已经引用了较新的 Android 支持库。
当然;不建议在生产环境中使用这些。
他们在官方添加了它FAQ
您不能同时更新 Xamarin.Forms 和 Xamarin.Android。因为它对版本有依赖性问题。
所以首先,Select 只 Xamarin.Forms 2.3.0.107 和更新。
之后,Select 其余 Xamarin.Android。支持列表和更新。
我极力推荐使用 Xamarin.Droid 和 Xamarin.iOS 一年的经验只更新 Xamarin.Forms 到最新版本,并忽略其他 Xam.Support 库,除非是极度有必要修复你需要的东西。
原因 #1:Microsoft 未对其进行全面测试。
原因 #2:您可能需要花费数小时来配置和修复参考资料的版本兼容性。
按照以下步骤解决问题
- 关闭 Visual Studio 并浏览以下文件夹
C:\用户\\AppData\Local\Xamarin
并删除“ Zib ”文件夹
(它会在构建解决方案时自动重新创建)
- 右击
在您的解决方案/项目上 ➔ 管理 nuget 包 ➔ 单击更新
选项卡 ➔ 更新 Xamarin 表单
- 重启Visual studio⇒打开项目==>
清理解决方案并构建立即添加您的 Nuget 包
引用自:https://xamarininterviewquestion.blogspot.in/2016/12/upgrade-nuget-xamarinandroidsupportdesi.html
从 Xamarin.Forms 2.3.4 开始,您可以手动更新所有 Xamarin.Android.Support NuGet 包。 条件是项目的目标框架和目标Android版本选项(如果您不知道我在说什么,请查看此页面:Understanding Android API Levels)至少设置为 Android 7.0,即 API 24 或更高。
Xamarin 官方文档也已更新:Xamarin Forms Troubleshooting
根据我自己的经验,我会推荐给:
- 如果您的项目很旧,请尝试将您的包列表从 packages.config 迁移到 .CSPROJ。与 packages.config 不同,PackageReference 仅列出您直接安装在项目中的那些 NuGet 包。因此,NuGet 包管理器 UI 和项目文件不会因下层依赖项而混乱。 More info here
- 清理 NuGet 包缓存:工具 -> NuGet 包管理器 -> 包管理器设置 -> 清除所有 NuGet 缓存
- 使用 NuGet 控制台获取有关错误的更多详细信息。打开控制台(工具 -> NuGet 包管理器 -> 包管理器控制台),然后键入 Update-Package
- 更新包后始终清理并重建
我最近决定更新 Xamarin 工作区中的所有内容,包括所有 NuGet 包和 Xamarin.Forms。
我首先安装了所有最新的 Xamarin.Android.Support
软件包,这与我现有的 Xamarin.Forms 当前版本冲突,所以我决定无论如何都需要更新 Xamarin.Forms。我删除了它并安装了所有其他软件包(效果很好),现在我试图再次重新安装 Xamarin.Forms,但我收到:
Unable to resolve dependencies. 'Xamarin.Android.Support.Design 23.4.0.1' is not compatible with 'Xamarin.Forms 2.3.0.107 constraint: Xamarin.Android.Support.Design (= 23.3.0)'.
有什么建议吗?
我在这里引用 Xamarin Forums 的 James Montemagno。
Xamarin.Forms locks in a very specific version of the support libraries and google play services. You can't update them because Xamarin.Forms isn't compatible with them as it would need to be re-compiled.
Xamarin.Android.Support.v4 (= 23.0.1.3) Xamarin.Android.Support.Design (= 23.0.1.3) Xamarin.Android.Support.v7.AppCompat (= 23.0.1.3) Xamarin.Android.Support.v7.CardView (= 23.0.1.3) Xamarin.Android.Support.v7.MediaRouter (= 23.0.1.3)
See the = 23.0.1.3, which means it is only compatible with that version number. This is just how NuGet works. When Xamarin.Forms updates these packages will auto update.
Forms 获得 'linked' 到特定版本的 Android 库,因此可以保证它可以正常工作。此时,Xamarin.Forms(稳定版)尚未更新为使用最新的 Android 支持包。因此,您可能想要使用较旧版本的 Forms,或者检查是否有 Forms 预发布版本已经引用了较新的 Android 支持库。
当然;不建议在生产环境中使用这些。
他们在官方添加了它FAQ
您不能同时更新 Xamarin.Forms 和 Xamarin.Android。因为它对版本有依赖性问题。 所以首先,Select 只 Xamarin.Forms 2.3.0.107 和更新。 之后,Select 其余 Xamarin.Android。支持列表和更新。
我极力推荐使用 Xamarin.Droid 和 Xamarin.iOS 一年的经验只更新 Xamarin.Forms 到最新版本,并忽略其他 Xam.Support 库,除非是极度有必要修复你需要的东西。
原因 #1:Microsoft 未对其进行全面测试。
原因 #2:您可能需要花费数小时来配置和修复参考资料的版本兼容性。
按照以下步骤解决问题
- 关闭 Visual Studio 并浏览以下文件夹 C:\用户\\AppData\Local\Xamarin 并删除“ Zib ”文件夹 (它会在构建解决方案时自动重新创建)
- 右击 在您的解决方案/项目上 ➔ 管理 nuget 包 ➔ 单击更新 选项卡 ➔ 更新 Xamarin 表单
- 重启Visual studio⇒打开项目==> 清理解决方案并构建立即添加您的 Nuget 包
引用自:https://xamarininterviewquestion.blogspot.in/2016/12/upgrade-nuget-xamarinandroidsupportdesi.html
从 Xamarin.Forms 2.3.4 开始,您可以手动更新所有 Xamarin.Android.Support NuGet 包。 条件是项目的目标框架和目标Android版本选项(如果您不知道我在说什么,请查看此页面:Understanding Android API Levels)至少设置为 Android 7.0,即 API 24 或更高。
Xamarin 官方文档也已更新:Xamarin Forms Troubleshooting
根据我自己的经验,我会推荐给:
- 如果您的项目很旧,请尝试将您的包列表从 packages.config 迁移到 .CSPROJ。与 packages.config 不同,PackageReference 仅列出您直接安装在项目中的那些 NuGet 包。因此,NuGet 包管理器 UI 和项目文件不会因下层依赖项而混乱。 More info here
- 清理 NuGet 包缓存:工具 -> NuGet 包管理器 -> 包管理器设置 -> 清除所有 NuGet 缓存
- 使用 NuGet 控制台获取有关错误的更多详细信息。打开控制台(工具 -> NuGet 包管理器 -> 包管理器控制台),然后键入 Update-Package
- 更新包后始终清理并重建