从Xamarin项目中消费包

时间:2016-05-25 08:36:52

标签: c# .net xamarin

我正在努力使Npgsql(.NET的PostgreSQL提供程序)可供Xamarin用户使用。我已经探索了各种方法,似乎被阻止了。

首先,Xamarin项目可以使用针对某些PCL配置文件的包。问题是这些PCL配置文件都不包含Npgsql所需的System.Data,即使是Xamarin itself allows you to use System.Data

其次,Npgsql已经支持.NET Platform Standard(版本3),the documentation on the standard包含以下句子:

  

如果库以.NET Platform Standard 1.3版为目标,则它只能在.NET Framework 4.6或更高版本,.NET Core,Universal Windows Platform 10(UWP)和Mono / Xamarin平台上运行。

但是,尝试沿着这条路走下去会产生几个错误(this question is one of them)。我的猜测是Xamarin工具还没有完全可以识别标准。

最后,似乎可以将Npgsql作为共享项目导入到用户的解决方案中,但这似乎是一个非常黑客和错误的解决方案 - 它完全绕过了NuGet。

有没有人对此有任何信息?

2 个答案:

答案 0 :(得分:0)

我相信你的猜测是正确的Xamarin工具不完全netstandard / PCL5意识到AFAIK(你的猜测和我的一样好)。这是所有有关各方进行统一的巨大努力。 dotnet端也有重大变化可以改变这一点。

关于System.Data

的问题

System.Data缺少一些功能:https://developer.xamarin.com/guides/ios/advanced_topics/system.data/#Missing_Functionality

System.Data可通过Xamarin.iOS.dll程序集获取,因为PCL不支持。

https://developer.xamarin.com/guides/ios/under_the_hood/assemblies/

https://msdn.microsoft.com/en-us/library/system.data(v=vs.110).aspx(注意里面没有PCL项目)

最后,下周应该有一篇关于netstandard来自https://blogs.msdn.microsoft.com/dotnet/2016/05/23/changes-to-project-json/

的博文

我强烈建议您加入.NET核心冗余频道,询问您可能遇到的任何问题。

http://tattoocoder.com/aspnet-slack-sign-up/

答案 1 :(得分:0)

npgsql包似乎取决于预发布包(RC - Release Candidate)。使用-pre选项运行安装:

def response = httpRequest "http://httpbin.org/response-headers?param1=${param1}"

这至少在安装到iOS项目时起作用。不确定它是否正常运行,因为没有任何依赖项被添加到引用,只有Npgsql。