便携式 Class 图书馆与图书馆项目

Portable Class Library vs. library project

我想知道 PCL(便携式 Class 图书馆)和普通图书馆的区别。

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

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

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

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

有关 PCL 的限制和功能的更多信息,请参阅以下两个 link:

  1. Share functionality using Portable Class Libraries
  2. Cross-Platform Development with the Portable Class Library

在第一个 link 上,您可以大致了解什么是 PCL。其次 - 有关目标和功能的信息。

希望这对您有所帮助。

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