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

Xamarin.forms 管理.net标准xamarin表单项目的nuget包,xamarin.forms,nuget,azure-mobile-services,.net-standard,skiasharp,Xamarin.forms,Nuget,Azure Mobile Services,.net Standard,Skiasharp,我正在将xamarin表单pcl转换为.net标准。在这个项目中,我使用了skia sharp和azure mobileservices 我的理解是,如果我在.net标准类库中引用这些库,然后在我的android/ios/uwp项目中添加对这个.net标准类库的引用,一切都会很好 然而,似乎我需要将SkiaSharep和azure mobileservices的nuget包添加到每个项目(android/ios/uwp)。真的是这样吗?如果是这样,这比使用PCL更好吗 我让android项目开始

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

我的理解是,如果我在.net标准类库中引用这些库,然后在我的android/ios/uwp项目中添加对这个.net标准类库的引用,一切都会很好

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

我让android项目开始工作,但我需要将所有nuget软件包添加到android项目中。
我让uwp项目在没有任何nuget软件包的情况下运行,这让我更加困惑。

使用PCL和.NET标准基本上是一样的-两者都只是API合同或完整.NET框架的子集。但是.NET标准有一个主要优势:.NET标准有更多的API,特别是如果您使用的是1.3+(netstandard1.3有System.IO API,这在PCL中是不可用的)

关于NuGet,您通常仍然需要在所有应用程序项目中引用NuGet包,因为有些平台有不同的实现来利用平台功能。将.NET标准视为所有平台API的一个子集-这就是为什么SkiaSharep在某些平台上运行良好的原因。然而,Android和iOS有不同的实现来利用平台功能

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

就我个人而言,为了安全起见,我总是把所有的Nuget都包含在应用程序项目中

以下是一些可以帮助您的文档: