【问题标题】:Issues updating Xamarin: unable to resolve dependencies更新 Xamarin 的问题:无法解决依赖关系
【发布时间】:2016-11-18 18:46:14
【问题描述】:

我最近决定更新我的 Xamarin 工作区中的所有内容,包括所有 NuGet 包和 Xamarin.Forms。

我首先安装了所有最新的 Xamarin.Android.Support 软件包,它与我拥有的当前版本的 Xamarin.Forms 冲突,所以我决定无论如何我都需要更新 Xamarin.Forms。我删除了它并安装了所有其他软件包(效果很好),现在我正在尝试再次重新安装 Xamarin.Forms,但我收到了:

无法解决依赖关系。 “Xamarin.Android.Support.Design 23.4.0.1”与“Xamarin.Forms 2.3.0.107 约束:Xamarin.Android.Support.Design (= 23.3.0)”不兼容。

有什么建议吗?

【问题讨论】:

    标签: xamarin xamarin.android nuget updates


    【解决方案1】:

    我在这里引用 Xamarin Forums 的 James Montemagno。

    Xamarin.Forms 锁定在一个非常特定版本的支持 图书馆和谷歌播放服务。您无法更新它们,因为 Xamarin.Forms 与它们不兼容,因为它需要 重新编译。

    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)

    参见 = 23.0.1.3,这意味着它只与那个兼容 版本号。这就是 NuGet 的工作原理。当 Xamarin.Forms 更新这些包将自动更新。

    Forms 被“链接”到特定版本的 Android 库,因此可以保证它可以按应有的方式协同工作。此时,Xamarin.Forms (stable) 尚未更新为使用最新的 Android 支持包。因此,您可能想要使用较旧版本的 Forms,或者检查是否有一个 Forms 预发布版本已经引用了较新的 Android 支持库。

    当然;不建议在生产环境中使用这些。

    他们在官方FAQ添加了它

    【讨论】:

    • 非常感谢您提供的信息,我刚刚将我的 Android 支持包降级到 23.0.1 并且现在已经设法安装表单。然而,我现在被“Resource.attribute”击中,它不包含“actionBarsiz”的定义,我只能假设它是相关的,因为我之前没有遇到过这个问题。如果您也知道对此的治疗方法,我们将不胜感激,如果没有,感谢您迄今为止的帮助:)
    • 确保您在 SDK 管理器中安装了正确的 SDK 版本,并检查它是否与您在应用项目设置中定位的 SDK 版本相对应。查看文档中的this 部分。
    • 我成功地浪费了 3 个小时来寻找这个答案:( 谢谢,@GeraldVersluis
    • 对于任何有问题的人,即使在降级 android 包后也不会让您更新 - 解决方案是仅从您的 android 项目中删除 xamarin.forms 以及所有 android 包,然后只安装最新版本的 xamarin.forms - 然后它将正确添加所有必需的 android 包
    【解决方案2】:

    您不能同时更新 Xamarin.Forms 和 Xamarin.Android。因为它与版本有依赖性问题。 因此,首先,仅选择 Xamarin.Forms 2.3.0.107 并更新。 之后,选择其余的 Xamarin.Android.support 列表并更新。

    【讨论】:

      【解决方案3】:

      我极力推荐 1 年的 Xamarin.Droid 和 Xamarin.iOS 经验,仅将 Xamarin.Forms 更新到最新版本,而忽略其他 Xam.Support 库,除非非常有必要修复您需要的问题。

      原因 #1:它没有经过 Microsoft 的全面测试。

      原因 #2:您可能需要花费数小时来配置和修复参考版本兼容性。

      【讨论】:

        【解决方案4】:

        根据我自己的经验,我建议:

        1. 如果您的项目非常旧,请尝试将包列表从 packages.config 迁移到 .CSPROJ。与 packages.config 不同,PackageReference 仅列出您直接安装在项目中的那些 NuGet 包。因此,NuGet 包管理器 UI 和项目文件不会因低级依赖项而杂乱无章。 More info here
        2. 清理 Nuget 包缓存:工具 -> NuGet 包管理器 -> 包管理器设置 -> 清除所有 NuGet 缓存
        3. 使用 NuGet 控制台获取有关错误的更多详细信息。打开控制台(工具 -> NuGet 包管理器 -> 包管理器控制台),然后键入 Update-Package
        4. 更新软件包后始终清理并重建

        【讨论】:

          【解决方案5】:

          对于分辨率,请按照以下步骤操作

          1. 关闭 Visual Studio 并导航到以下文件夹 C:\Users\\AppData\Local\Xamarin 并删除“ Zib”文件夹 (它会在构建解决方案时自动重新创建)
          2. 右键单击 在您的解决方案/项目上➔管理 nuget 包➔ 单击更新 选项卡 ➔ 更新 Xamarin 表单
          3. 重新启动 Visual Studio⇒打开项目 ==> 清理解决方案并构建立即添加您的 Nuget 包

          引用自:https://xamarininterviewquestion.blogspot.in/2016/12/upgrade-nuget-xamarinandroidsupportdesi.html

          【讨论】:

            【解决方案6】:

            从 Xamarin.Forms 2.3.4 开始,您可以手动更新所有 Xamarin.Android.Support NuGet 包。 条件是您项目的 Target FrameworkTarget Android 版本 选项(如果您不知道我在说什么查看此页面:Understanding Android API Levels) 至少设置为 Android 7.0,即 API 24 或更高版本。

            Xamarin 官方文档也已更新:Xamarin Forms Troubleshooting

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2016-02-16
              • 2017-02-20
              • 2021-06-22
              • 1970-01-01
              相关资源
              最近更新 更多