我正在努力使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。
有没有人对此有任何信息?
答案 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核心冗余频道,询问您可能遇到的任何问题。
答案 1 :(得分:0)
npgsql包似乎取决于预发布包(RC - Release Candidate)。使用-pre选项运行安装:
def response = httpRequest "http://httpbin.org/response-headers?param1=${param1}"
这至少在安装到iOS项目时起作用。不确定它是否正常运行,因为没有任何依赖项被添加到引用,只有Npgsql。