Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何为此PCL库制作NuGet包_C#_.net_Xamarin_Nuget - Fatal编程技术网

C# 如何为此PCL库制作NuGet包

C# 如何为此PCL库制作NuGet包,c#,.net,xamarin,nuget,C#,.net,Xamarin,Nuget,我正在尝试为我制作的PCL库创建一个nuget包 但是,此nuget软件包旨在用于Xamarin Forms应用程序。所以我甚至不确定我勾选的东西是否正确 我真的只关心.NETFramework4。这就是我的最小框架。剩下的,我一点也不在乎,也不知道我应该瞄准什么 值得一提的是,我正在使用创建我的NuGetnupkg文件,以便在将它们发布到NuGet之前手动测试它们 这是我尝试的一个截图,但Xamarin Studio未能添加nuget包(说它不是正确的东西) 以及来自Xam Studio的

我正在尝试为我制作的PCL库创建一个nuget包

但是,此nuget软件包旨在用于Xamarin Forms应用程序。所以我甚至不确定我勾选的东西是否正确

我真的只关心.NETFramework4。这就是我的最小框架。剩下的,我一点也不在乎,也不知道我应该瞄准什么

值得一提的是,我正在使用创建我的NuGet
nupkg
文件,以便在将它们发布到NuGet之前手动测试它们

这是我尝试的一个截图,但Xamarin Studio未能添加nuget包(说它不是正确的东西)

以及来自Xam Studio的错误消息:

Adding Foo...
Adding 'Foo 1.3.0' to Core.
Could not install package 'Foo 1.3.0'. You are trying to install this package into a project that targets 'portable-net45+win+wp80+MonoTouch10+MonoAndroid10+xamarinmac20+xamarinios10', but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author.

对于Xamarin.Forms,可移植类库(PCL)项目可以使用的两个配置文件是配置文件78或配置文件259。表单可以在其他概要文件中使用,但是如果您的PCL项目以其中一个为目标,您应该可以。您的项目似乎以Profile 78为目标

以下是Xamarin.Forms PCL配置文件供参考

Xamarin.表格1.3:

portable-win+net45+wp80+MonoAndroid10+MonoTouch10
Xamarin.表格1.4:

portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10 
您的NuGet软件包的问题在于,它并不表示它在PCL中支持Windows 8。NuGet将查看组成项目PCL配置文件的所有单个框架(忽略Xamarin和Mono框架,因为如果您的NuGet包的PCL配置文件中没有它们,它们是可选的),并确保NuGet包的PCL配置文件具有兼容的框架。如果NuGet PCL没有匹配的框架,则NuGet认为它不兼容

因此,您的NuGet软件包的便携库文件夹需要包含win

portable-net4+sl5+wp8+win

然后,您可以将NuGet软件包安装到Profile 78 PCL项目中。

感谢Matt的详细回复,非常感谢!我有一个问题:
+win
是什么意思?另外,上面最后一个文件夹和Xam Forms 1.4文件夹之间有什么区别?“+”只是一个分隔符。win是Windows 8框架的简称。8是基于NuGet的规则隐含的。NuGet PCL文件夹与Xamarin.Forms-Xamarin.Forms之间的差异支持Net 4.5,但不支持Net 4.0,并且它不针对Silverlight(sl)。Forms 1.4不仅支持Windows8.1及以上版本,而且还支持新的WindowsPhone8项目(wpa)。wp=Windows Phone Silverlight。