我有一点C#/ .NET经验,但我很擅长使用可移植类库(PCL)和为Xamarin.iOS编写代码
我的一般理解是'定期' Visual Studio中的DLL依赖于.NET 4.x,它具有大量的本机依赖性。
相比之下,我认为,PCL配置文件表示平台提供的API(元)子集,而PCL以这些配置文件为目标,并且完全独立于平台。
现在让我感到困惑的是,有些便携式产品是什么?库(例如Portable Compression但还有更多),也需要本机依赖项。
这不会破坏PCL的目的吗?如果没有,为什么他们被称为“便携式”,他们与常规IL组件的区别是什么?
答案 0 :(得分:1)
使它“可移植”的原因是你可以在不同类型的项目中使用该包,并编写相同的代码来使用它。什么是从不可移植是部署,您使用一种非常不同的方式将您的程序及其库部署到手机与台式机之间。
像这样的Nuget包总是包含一个在添加包时运行的Powershell脚本。他们查看您的项目以了解需要复制的DLL。包通常包括它们,但你只使用它们中的一个特定集。可以在您选择的特定设备上运行的那个。对于博客文章指出您无法定位AnyCPU的原因,Powershell脚本需要知道是否要复制32位或64位版本的本机DLL。
有关此脚本的更多详细信息以及在this post中部署DLL的方法。