管理.net标准xamarin表单项目的nuget包

时间:2018-02-01 23:58:04

标签: xamarin.forms nuget azure-mobile-services .net-standard skiasharp

我正在将xamarin表单pcl转换为.net标准。在项目中,我使用skia sharp和azure mobileservices。

我的理解是,如果我在.net标准类库中引用这些库,然后在我的android / ios / uwp项目中添加对此.net标准类库的引用,那么一切都会没问题。

然而,似乎我需要为每个项目(android / ios / uwp)添加skiasharp和azure mobileservices的nuget包。确实如此吗?如果是这样,这比使用PCL更好吗?

我让android项目工作,但我需要将所有nuget包添加到android项目中。 我让uwp项目没有任何nuget包工作,这让我更加困惑。

1 个答案:

答案 0 :(得分:1)

使用PCL和.NET Standard基本相同 - 它们只是API契约或完整.NET Framework的子集。但.NET标准有一个主要优点:.NET Standard有更多的API - 特别是如果你使用的是1.3+ (netstandard1.3具有PCL中没有的System.IO API)

关于NuGets,您通常仍需要在所有应用程序项目中引用NuGet包,因为某些平台具有不同的实现以利用平台功能。将.NET Standard视为所有平台API的子集 - 这就是为什么SkiaSharp适用于某些平台的原因。但是,Android和iOS有不同的实现方式来利用平台功能。

虽然您没有直接进行Android开发(因为您使用的是Xamarin.Forms),但您不会注意到某些事情。如果您必须包含.NET标准软件包,您将获得基本的SkiaSharp,例如,可以在Xamarin.Forms颜色和SkiaSharp颜色之间进行转换。但是,由于将软件包包含在Android应用程序中,您还可以将Android颜色转换为SkiaSharp颜色。

就个人而言,为了安全起见,我总是将所有NuGets包含在应用程序项目中。

以下是一些可能对您有所帮助的文档: https://docs.microsoft.com/en-us/dotnet/standard/net-standard