Xamarin平台项目无法解决NuGet依赖项

如何解决Xamarin平台项目无法解决NuGet依赖项

我正在努力理解为什么有时由于Xamarin平台应用程序无法从其共享的(.NET Standard)项目中解决NuGet间接依赖关系而陷入这种情况的原因。

这种情况:

我扩展了已经构建和部署的跨平台(iOS,Android和UWP)NuGet程序包。新功能要求共享(.NET Standard)代码库项目对System.IdentityModel.Tokens.Jwt有新的依赖性。 System.IdentityModel.Tokens.Jwt依次具有Microsoft.IdentityModel.TokensMicrosoft.IdentityModel.JsonWebTokens的依赖关系。

我建立了代码库; .NET Standard 2.0(共享)代码库和iOS,Androind和UWP的三个平台库。一切都很好,所以我更新了.nuspec并将System.IdentityModel.Tokens.Jwt添加<group targetFramework=".NETStandard2.0">的{​​{1}}子节中,然后打包.nuget。

接下来,为确保一切正常,我将.nuget“部署”到本地文件夹(已将其设置为用于测试目的的nuget源),然后为我的四个测试应用程序项目(.Net标准,iOS,Android和UWP)。共享的.Net Std lib项目构建良好,因此我尝试构建平台之一,例如Android应用程序。我现在收到此错误

<dependencies>

我检查了Android应用程序项目的Can not resolve reference: `Microsoft.IdentityModel.Tokens`,referenced by `(my package)` 文件,这是nuget输出

project.assets.json

问题是,(我的包裹)对 "(my package name)": { "type": "package","dependencies": { "Xamarin.Forms": "4.0.0" },"compile": { "lib/MonoAndroid10/(my package name).Android.dll": {},"lib/MonoAndroid10/(my package name).dll": {} },"runtime": { "lib/MonoAndroid10/(my package name).Android.dll": {},"lib/MonoAndroid10/(my package name).dll": {} } },以外的其他包裹也有依赖性,例如System.IdentityModel.Tokens.JwtXamarin.Essentials。反过来,它们又依赖于其他NuGets,依此类推。由于某种原因,这似乎根本不是问题。根据我的读物(https://docs.microsoft.com/en-us/nuget/concepts/dependency-resolution),Visual Studio会找出所有依赖关系,并构建一个依赖关系图,然后将其展平并写入每个项目的System.Text.Json。为什么某些(大多数,显然是)软件包可以完全解决而另一些却不能?

我通过简单地将所有麻烦的引用直接添加到.nuspec文件的每个平台目标部分来“解决”了问题,但我不知道为什么甚至有必要这样做。

有人吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?