便携式类库与库项目

时间:2015-02-26 15:39:11

标签: c# dll xamarin.ios xamarin portable-class-library

我想知道PCL(可移植类库)和普通库之间的区别。

PCL使用配置文件来确定哪些平台和功能可用。两者都可以生成可以在不同平台上使用的DLL。对于普通的库项目,您还可以设置目标框架(例如.NET 3.5)。 Xamarin表示#if编译器指令仅适用于共享项目,这意味着它们不在PCL中使用。我认为PCL和图书馆项目非常相似。

那么在处理不同的移动平台时会有什么不同?

1 个答案:

答案 0 :(得分:19)

可移植类库与平台无关。它们不使用条件编译和非托管代码,它们内部没有UI(UI依赖于平台)。这是因为PCL应该在选择作为目标的所有指定平台上工作。此外,功能的可用性取决于选定的目标。

因此,在PCL设置中指定目标的任何项目都可以引用PCL。但是其他类型的库只能由具有相同目标的项目或.Net的上部子集引用(例如,Silverlight库可以在Windows项目中使用,但反之亦然)。

有关PCL的限制和功能的更多信息可以在以下两个链接中找到:

  1. Share functionality using Portable Class Libraries
  2. Cross-Platform Development with the Portable Class Library
  3. 在第一个链接上,您可以了解一般的PCL是什么。关于目标和功能的第二个信息。

    希望这有帮助。

    编辑:另见What is a Portable Class Library?