TKCustomMap版本冲突



此问题已在GitHub此处报告-

https://github.com/TorbenK/TK.CustomMap/issues/325

有没有其他人为此而挣扎过?我很高兴找到这个nuget软件包,因为它正是我想要的,但它需要安装Places和其他一些GooglePlayServices,由于这一冲突,我无法安装它们。

我也不确定卸载TK.CustomMap然后安装Play Services是否会有帮助,因为在GitHub上报告该问题的人说-


我将我的应用程序转换为.net 2.0,并不得不使用最新的谷歌播放服务60.1142.1让AdMob工作。在我卸载TK.CustomMap之前,它不会安装,现在TK.CustomMap不会重新安装,因为它只想使用GooglePlayServices 42.1021.1

严重性代码描述项目文件行禁止显示状态为Xamarin.GooglePlayServices.Tasks检测到错误NU1107版本冲突。请直接从项目中引用包以解决此问题。HunterTracker.Android->Xamarin.GooglePlayServices.Base 60.1142.1->Xamaring.GooglePlayServices.Tasks(=60.1142.1)HunterTracker.Android->HunterTracker->TK.CustomMap 2.0.1->Xamarin.GooglePlayServices.Location 42.1021.1->Xamarin.Google PlayServices.Tasks(=42.1021.1).


这几乎就是我在安装其他软件包时遇到的错误。github上没有解决方案。

有人在附近找到工作吗?或者有人知道如何"直接从项目引用包">吗?

感谢SushiHangover在上面为我指明了正确的方向,我能够发现我需要在这里做什么。起初,我在更新TK.CustomMap的nuget包时出错,因为v26Xamarin.Android.Support.Vector.Drawable的目标是MonoAndroid8.0,而v27的更新必须以MonoAndroid8.1为目标。因此,为了获得更高版本的程序集,仅更新nuget包就花了很长时间,这样我就可以在解决方案中使用TK.CustomMap。但我最终还是做到了。以下是我所遵循的步骤(我记得最清楚)。我现在无法编译ios,因为我没有MAC,所以必须稍后进行修复。此修复程序仅适用于共享项目和Android项目

  1. 从github下载TK.CustomMap-master
  2. 提取它并完全删除Sample项目(我也删除了UWP项目,因为我现在对此并不感兴趣)
  3. 打开、建造然后关闭。从Android和共享项目中删除了包文件夹、vs文件夹、bin和obj(这一步可能没有必要,但我做到了…)
  4. 在软件包中,Android中的config将所有目标从monoandroid80更改为monoandroid81保存文件
  5. 在TK.CustomMap.Android.csproj中,对于任何Xamarin.Android.Support或其他Xamarin.Android util软件包的每个v26.0.1,都将26.0.1libMonoAndroid80更改为27.0.2.1libMonoAndroid81-保存文件
  6. 在TK.CustomMap.nuspec的nuget文件夹中,更改了本节中的目标框架

    <group targetFramework="libMonoAndroid7.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="libMonoAndroid">

所以它可以针对任何版本的

  1. 使用包管理器(而非控制台)打开并更新所有nuget包。已构建调试和发布版本

此时打开了解决方案,我之前曾尝试在中实现TK.CustomMap以尝试修复。请记住,最初的问题是无法使用最新的框架,42.1021.1框架无法定位com.google.gms.locationcom.google.gms.places.ui文件,因此必须更新它们或不更新TK.CustomMap

  1. 在问题解决方案中,从所有项目卸载TK.CustomMap
  2. 在问题解决方案中,Android项目添加了对TK.CustomMap项目中Android bin文件发布文件夹中所有dll的引用
  3. 通过Package Manager(而非控制台)为所有Xamarin.Android框架安装了问题解决方案的更新
  4. 使用软件包管理器(而非控制台)为所有项目安装了所有其他nuget软件包的更新
  5. 已使用包管理器(而非控制台)安装TK.CustomMap到共享项目
  6. 第二次添加了对android项目的引用。可能有帮助,也可能没有帮助
  7. 使用软件包管理器(而非控制台)安装TK.CustomMap Nuget软件包
  8. 在Live Player上成功构建并运行

感谢Sushi Hangover的建议。我还没有看到任何关于如何实现这一点的全面教程,所以我想我会发布自己的答案,以防其他人在看。如果你是VS的新手,那么所有这些东西一开始都不是在公园里散步。

感谢@Travis Flenor。这是我的解决方案。我稍微改变了你的顺序,以便在我的顺序上工作。1.确保github的原始项目(https://github.com/TorbenK/TK.CustomMap)工作,你可以运行它。2.在发生冲突的地方更新nugets。在我的情况下,我在谷歌播放库版本中感到矛盾。我在原始项目中更新了它,然后确保它可以运行。
3。在发布模式下编译整个解决方案。然后,从bin/release复制生成的dll,并将它们粘贴到我桌面的文件夹中。4.我引用了那些dll到共享项目和android项目。我只使用了nuget软件包管理器来安装tk.custom所需的一些丢失的软件包。请注意,您只会引用项目接受的一些dll。为此,Visual将提示"dll已引用"某些内容。5.先参考你的共享项目,然后再参考你的android项目。仅此而已。确保您可以重新编译解决方案。希望这能帮助

相关内容

  • 没有找到相关文章

最新更新