便携式 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:
- Share functionality using Portable Class Libraries
- Cross-Platform Development with the Portable Class Library
在第一个 link 上,您可以大致了解什么是 PCL。其次 - 有关目标和功能的信息。
希望这对您有所帮助。
编辑: 另见 What is a Portable Class Library?
我想知道 PCL(便携式 Class 图书馆)和普通图书馆的区别。
PCL 使用可以确定哪些平台和功能可用的配置文件。两者都可以生成可在不同平台上使用的 DLL。对于普通的库项目,您还可以设置目标框架(例如 .NET 3.5)。 Xamarin 表示 #if
编译器指令仅适用于共享项目,这意味着它们不会在 PCL 中使用。我认为 PCL 和图书馆项目非常相似。
那么在处理不同的移动平台时有什么区别?
可移植class 库与平台无关。它们不使用条件编译和非托管代码,它们内部没有 UI(UI 是平台相关的)。这是因为 PCL 应该在所有被选为目标的指定平台上工作。此外,功能的可用性取决于选定的目标。
因此 PCL 可以被在 PCL 设置中指定目标的任何项目引用。但是其他类型的库只能被具有相同目标的项目或.Net 的上层子集引用(例如,Silverlight 库可以在 Windows 项目中使用,但反之则不行)。
有关 PCL 的限制和功能的更多信息,请参阅以下两个 link:
- Share functionality using Portable Class Libraries
- Cross-Platform Development with the Portable Class Library
在第一个 link 上,您可以大致了解什么是 PCL。其次 - 有关目标和功能的信息。
希望这对您有所帮助。
编辑: 另见 What is a Portable Class Library?