为什么PCL NuGet包无法瞄准Xamarin平台?

本文关键字:Xamarin 平台 PCL NuGet 包无法 为什么 | 更新日期: 2023-09-27 18:11:51

我维护一个打包成NuGet的开源PCL库,它针对Xamarin平台。它已被许多开发人员成功地使用。最近我收到了一个问题报告,一个开发人员说他必须给我的NuGet包打补丁,才能在他的应用程序中包含这个包。

他把它改成:portable-net45 + win + win8中的+ wp8 + wpa81

:portable-net45 + wp8 + wpa81 + netcore45 + monoandroid1 + xamarin.ios10

虽然我没有在包的nuspec中明确指定xamarin目标,但在构建xamarin应用程序时,这从来都不是问题。显然现在是。这与Visual Studio 2015,最近的Xamarin更新(我没有用我的lib验证)有什么关系吗?还有其他原因吗?

为什么PCL NuGet包无法瞄准Xamarin平台?

我参考了Matt Ward在Xamarin论坛上的回答,他说:

monoandroid/xamarin的。为了在Xamarin项目中使用NuGet包,lib目录中的ios不是必需的。如果NuGet包包含兼容的可移植类库(PCL),那么可以使用它。你只需要lib/monoandroid或lib/xamarin。如果你的库使用了monoandroid或xamarin的一部分。Ios(即特定平台)。

还有monoandroid和xamarin。在NuGet包的可移植类库配置文件中不需要ios。这些被NuGet视为可选的。Json。例如,NET没有任何对monoandroid或xamarin的引用。在它的NuGet包中,它可以被Xamarin项目使用。

使用NuGet 3的Simple.OData.Client NuGet包的问题是PCL配置文件目录中的额外文件。这似乎是NuGet 3中的一个bug