TKCustomMap 版本冲突
TKCustomMap Version Conflict
此问题已在 GitHub 此处报告 -
https://github.com/TorbenK/TK.CustomMap/issues/325
还有其他人遇到过这个问题吗?我很高兴找到这个 nuget 包,因为它完全符合我的要求,但它需要安装 Places 和其他一些 GooglePlayServices,但由于这个冲突我无法安装它们。
我也不确定卸载 TK.CustomMap 然后安装 Play 服务是否有帮助,因为在 GitHub 上报告问题的人说-
我将我的应用程序转换为 .net 2.0 并且必须使用最新的 Google 播放服务
60.1142.1 让 AdMob 正常工作。在我卸载 TK.CustomMap 之前它不会安装,现在 TK.CustomMap 不会重新安装,因为它只想使用 GooglePlayServices 42.1021.1
严重性代码说明项目文件行抑制状态
错误 NU1107 检测到 Xamarin.GooglePlayServices.Tasks 的版本冲突。直接从项目中引用包来解决这个问题。
HunterTracker.Android -> Xamarin.GooglePlayServices.Base 60.1142.1 -> Xamarin.GooglePlayServices.Tasks (= 60.1142.1)
HunterTracker.Android -> HunterTracker -> TK.CustomMap 2.0.1 -> Xamarin.GooglePlayServices.Location 42.1021.1 -> Xamarin.GooglePlayServices.Tasks (= 42.1021.1).
这几乎就是我在尝试安装其他软件包时遇到的错误。 github.
没有解决方案
有人找到解决办法了吗?或者有谁知道如何 "Reference the package directly from the project"?
感谢 SushiHangover 上面的评论为我指明了正确的方向,我才能够在这里找到我需要做的事情。一开始我在更新 TK.CustomMap 的 nuget 包时遇到错误,因为 v26 Xamarin.Android.Support.Vector.Drawable
的目标是 MonoAndroid8.0
,而 v27 的更新必须以 MonoAndroid8.1
为目标,所以仅仅为了能够更新 nuget 包以获得更高版本的程序集,这样我就可以在我的解决方案中使用 TK.CustomMap。但我最终能够到达那里。这是我遵循的步骤(据我所知)。我现在无法编译 ios,因为我没有 MAC,因此必须稍后进行修复。此修复仅适用于共享项目和 Android 项目
- 从 github
下载 TK.CustomMap-master
- 解压并完全删除示例项目(我也删除了 UWP 项目,因为此时我对此并不感兴趣)
- 打开并构建然后关闭。从 Android 和共享项目中删除了 packages 文件夹、vs 文件夹、bin 和 obj(这一步可能不是必需的,但我这样做了...)
- 在 Android 中的 packages.config 中将所有目标从
monoandroid80
更改为 monoandroid81
保存文件
- 在 TK.CustomMap.Android.csproj 中,任何 Xamarin.Android.Support 或其他 Xamarin.Android 实用程序包的每个 v26.0.1 已将
26.0.1\lib\MonoAndroid80
更改为 27.0.2.1\lib\MonoAndroid81
- 保存文件
在TK.CustomMap中的nuget文件夹中.nuspec更改了这部分的目标框架
<group targetFramework="lib\MonoAndroid7.0">
<dependency id="Xamarin.GooglePlayServices.Location" version="42.1021.1" />
<dependency id="Xamarin.GooglePlayServices.Places" version="42.1021.1" />
<dependency id="Xamarin.Android.Maps.Utils" version="0.5.0" />
<dependency id="Xamarin.Forms" version="2.5.0.91635" />
<dependency id="Newtonsoft.Json" version="10.0.3" />
</group>
至
<group targetFramework="lib\MonoAndroid">
因此它可以针对任何版本
- 使用包管理器(不是控制台)打开并更新了所有 nuget 包。构建调试和发布版本
此时打开了我之前尝试实施 TK.CustomMap 的解决方案以尝试修复。请记住,最初的问题是无法使用最新的框架,并且 42.1021.1 框架无法找到 com.google.gms.location
和 com.google.gms.places.ui
文件,因此必须更新它们或没有 TK.CustomMap
- 在问题解决方案中卸载了所有项目TK.CustomMap
- 在问题解决方案中 Android 项目添加了对 TK.CustomMap 项目的 Android bin 文件的发布文件夹中所有 dll 的引用。
- 已通过包管理器(而非控制台)为问题解决方案中的所有 Xamarin.Android 框架安装了更新
- 使用包管理器(不是控制台)为所有项目安装了所有其他 nuget 包的更新
- 已使用包管理器(而非控制台)安装 TK.CustomMap 到共享项目
- 第二次添加了对 android 项目的引用。可能有用也可能没用。
- 使用包管理器(不是控制台)安装了 TK.CustomMap Nuget 包
- 在 Live Player 上构建并 运行 成功!!
感谢 Sushi Hangover 的建议。我还没有在任何地方看到任何关于如何完成此操作的综合教程,所以我想我会 post 我自己的答案,以防其他人在看。当然,如果您是 VS 新手,那么一开始所有这些东西都不是在公园散步。
感谢@Travis Fleenor。这是我的解决方案。我稍微改变了你的顺序,以便在我的上工作。
1. 确保来自 github (https://github.com/TorbenK/TK.CustomMap) 的原始项目有效并且你可以 运行 它。
2.更新发生冲突的nugets。就我而言,我在 googleplay 库版本中遇到了冲突。我在原来的项目中更新了它,然后保证它可以 运行 它。
3. 在发布模式下编译整个解决方案。然后,从 bin/release 复制生成的 dll 并将它们粘贴到我桌面的文件夹中。
4. 我将那些 dll 引用到 shared proyect 和 android proyect。我只使用 nuget 包管理器来安装 tk.custom 所需的一些缺失包。请注意,您只会引用项目接受的一些 dll。对于 mayority Visual 会提示 'dll already referenced' 的东西。
5. 首先引用您的共享项目,然后再引用您的 android 项目。就这样。确保你 ca 重新编译解决方案。
希望这有帮助
此问题已在 GitHub 此处报告 -
https://github.com/TorbenK/TK.CustomMap/issues/325
还有其他人遇到过这个问题吗?我很高兴找到这个 nuget 包,因为它完全符合我的要求,但它需要安装 Places 和其他一些 GooglePlayServices,但由于这个冲突我无法安装它们。
我也不确定卸载 TK.CustomMap 然后安装 Play 服务是否有帮助,因为在 GitHub 上报告问题的人说-
我将我的应用程序转换为 .net 2.0 并且必须使用最新的 Google 播放服务 60.1142.1 让 AdMob 正常工作。在我卸载 TK.CustomMap 之前它不会安装,现在 TK.CustomMap 不会重新安装,因为它只想使用 GooglePlayServices 42.1021.1
严重性代码说明项目文件行抑制状态 错误 NU1107 检测到 Xamarin.GooglePlayServices.Tasks 的版本冲突。直接从项目中引用包来解决这个问题。 HunterTracker.Android -> Xamarin.GooglePlayServices.Base 60.1142.1 -> Xamarin.GooglePlayServices.Tasks (= 60.1142.1) HunterTracker.Android -> HunterTracker -> TK.CustomMap 2.0.1 -> Xamarin.GooglePlayServices.Location 42.1021.1 -> Xamarin.GooglePlayServices.Tasks (= 42.1021.1).
这几乎就是我在尝试安装其他软件包时遇到的错误。 github.
没有解决方案有人找到解决办法了吗?或者有谁知道如何 "Reference the package directly from the project"?
感谢 SushiHangover 上面的评论为我指明了正确的方向,我才能够在这里找到我需要做的事情。一开始我在更新 TK.CustomMap 的 nuget 包时遇到错误,因为 v26 Xamarin.Android.Support.Vector.Drawable
的目标是 MonoAndroid8.0
,而 v27 的更新必须以 MonoAndroid8.1
为目标,所以仅仅为了能够更新 nuget 包以获得更高版本的程序集,这样我就可以在我的解决方案中使用 TK.CustomMap。但我最终能够到达那里。这是我遵循的步骤(据我所知)。我现在无法编译 ios,因为我没有 MAC,因此必须稍后进行修复。此修复仅适用于共享项目和 Android 项目
- 从 github 下载 TK.CustomMap-master
- 解压并完全删除示例项目(我也删除了 UWP 项目,因为此时我对此并不感兴趣)
- 打开并构建然后关闭。从 Android 和共享项目中删除了 packages 文件夹、vs 文件夹、bin 和 obj(这一步可能不是必需的,但我这样做了...)
- 在 Android 中的 packages.config 中将所有目标从
monoandroid80
更改为monoandroid81
保存文件 - 在 TK.CustomMap.Android.csproj 中,任何 Xamarin.Android.Support 或其他 Xamarin.Android 实用程序包的每个 v26.0.1 已将
26.0.1\lib\MonoAndroid80
更改为27.0.2.1\lib\MonoAndroid81
- 保存文件 在TK.CustomMap中的nuget文件夹中.nuspec更改了这部分的目标框架
<group targetFramework="lib\MonoAndroid7.0"> <dependency id="Xamarin.GooglePlayServices.Location" version="42.1021.1" /> <dependency id="Xamarin.GooglePlayServices.Places" version="42.1021.1" /> <dependency id="Xamarin.Android.Maps.Utils" version="0.5.0" /> <dependency id="Xamarin.Forms" version="2.5.0.91635" /> <dependency id="Newtonsoft.Json" version="10.0.3" /> </group>
至
<group targetFramework="lib\MonoAndroid">
因此它可以针对任何版本
- 使用包管理器(不是控制台)打开并更新了所有 nuget 包。构建调试和发布版本
此时打开了我之前尝试实施 TK.CustomMap 的解决方案以尝试修复。请记住,最初的问题是无法使用最新的框架,并且 42.1021.1 框架无法找到 com.google.gms.location
和 com.google.gms.places.ui
文件,因此必须更新它们或没有 TK.CustomMap
- 在问题解决方案中卸载了所有项目TK.CustomMap
- 在问题解决方案中 Android 项目添加了对 TK.CustomMap 项目的 Android bin 文件的发布文件夹中所有 dll 的引用。
- 已通过包管理器(而非控制台)为问题解决方案中的所有 Xamarin.Android 框架安装了更新
- 使用包管理器(不是控制台)为所有项目安装了所有其他 nuget 包的更新
- 已使用包管理器(而非控制台)安装 TK.CustomMap 到共享项目
- 第二次添加了对 android 项目的引用。可能有用也可能没用。
- 使用包管理器(不是控制台)安装了 TK.CustomMap Nuget 包
- 在 Live Player 上构建并 运行 成功!!
感谢 Sushi Hangover 的建议。我还没有在任何地方看到任何关于如何完成此操作的综合教程,所以我想我会 post 我自己的答案,以防其他人在看。当然,如果您是 VS 新手,那么一开始所有这些东西都不是在公园散步。
感谢@Travis Fleenor。这是我的解决方案。我稍微改变了你的顺序,以便在我的上工作。
1. 确保来自 github (https://github.com/TorbenK/TK.CustomMap) 的原始项目有效并且你可以 运行 它。
2.更新发生冲突的nugets。就我而言,我在 googleplay 库版本中遇到了冲突。我在原来的项目中更新了它,然后保证它可以 运行 它。
3. 在发布模式下编译整个解决方案。然后,从 bin/release 复制生成的 dll 并将它们粘贴到我桌面的文件夹中。
4. 我将那些 dll 引用到 shared proyect 和 android proyect。我只使用 nuget 包管理器来安装 tk.custom 所需的一些缺失包。请注意,您只会引用项目接受的一些 dll。对于 mayority Visual 会提示 'dll already referenced' 的东西。
5. 首先引用您的共享项目,然后再引用您的 android 项目。就这样。确保你 ca 重新编译解决方案。
希望这有帮助