什么是可移植类库?

在MSDN上,我注意到版本信息下的一个关于可Portable Class Library的部分。

有关示例,请参阅System.Object 。 http://msdn.microsoft.com/en-us/library/system.object.aspx

我做了简短的Googlesearch,找不到关于Portable Class Library任何内容。 有没有人知道这是什么或在哪里可以find更多的信息?

更新2017年10月9日: 比较/对比.NET Core / Std / PCL的文章更新2016年11月23日: Article由Rick Strahl

更新2016年10月29日: .NET标准1-> 2常见问题更新2016年10月19日:这是我见过的最好的面试/video覆盖.NET标准2.0

更新Sep 27 2016: .NET标准2.0公告post有更多的好信息

更新2016年6月6日: 这篇文章很好地解释了.NETStandard库机制如何取代大部分PCL

更新2013年7月10日: 从@shanselman的PCL工会总结blogpost的优秀状态与大量具体的例子,截图和链接。 在阴影下给这里任何其他的答案。

更新2013年5月20日:

  • 非常实际的应用和涉及这个跨平台的东西(思考Xamarin工作室)在平板显示与Atley猎人播客的涵义 。 关键问题: PCL是跨设备场景中强加于自身的非常有用的约束。
  • 其中一个提到的图书馆是那个在单独的平板电视节目第71集中讨论的MvvmCross ,它的作者是@Stuart Lodge 。 只有像Stuart在这里描述的那样对环境设置进行微调,才能将PCL用于这种目的。

更新2013年4月19日:优秀的密集摘要如何从智能感知一直挂在一起,以运行时间在博客文章西蒙库珀


video: 第9频道Visual Studio工具箱显示2012年6月14日的情节

video: 第9频道去深度显示情节2011年9月27日


更新2012年9月11日: 良好的高层次的博客文章与图片,图表和激励MVVM光和RX如何使用它的例子

更新2012年4月11日:非常好的端到端片由斯科特Hanselman得到开发点说很快,包括在这里的截图 (也包含非常有见地的“如何思考”的信息和样品的链接)。 在最后还包括一个资源部分,几乎重复了这整个职位:D

更新2012年7月9日: 由开发团队的Mircea Trofin撰写的这个博客系列(迄今为止的一部分)是最完整的报道,包括屏幕截图和详细的matrix,如果您遇到这种情况,可以显示所有选项的可用function。


请参阅便携式图书馆工具anouncement博客文章 ,其中启动: –

便携式库工具CTP为Visual Studio添加了一个新的“可移植类库”项目模板,该模板可用于在不同的.NET平台上运行的C#和VB中创build类库,无需重新编译。

它用于创build一个针对多个平台的类库(特别是诸如WP7和SL4之类的Silverlight变体,但在Xbox上包括XNA)。

另请参阅本文的InfoQ总结文章

另请参阅本发行说明 。

有关详细信息, 请参阅托pipe代码工具的多目标指南

  • 可移植类库项目使您能够编写和构build在多个.NET Framework平台上工作的受pipe程序集。 您可以创build包含您希望在多个项目(如共享业务逻辑)中共享的代码的类,然后引用来自不同types项目的类。

  • 便携式图书馆工具是Microsoft提供的新的Visual Studio插件,使您可以创build在各种基于.NET的平台上运行而无需重新编译的C#和Visual Basic库。

MSDN现在有一个很好的文章/文档 。 您可以查看它并查看Portable Class Library受支持的内容 便携式类库的图标


以下程序集在可移植类库项目中可用:

  • mscorlib.dll中
  • System.dll中
  • System.Core.dll
  • system.xml.dll的
  • System.ComponentModel.Composition.dll
  • System.Net.dll
  • System.Runtime.Serialization.dll
  • System.ServiceModel.dll
  • System.Xml.Serialization.dll
  • System.Windows.dll(来自Silverlight)

您可以在.NET Framework类库的参考主题中find可移植类库项目支持哪些成员。 在类的成员表中,受支持的成员旁边将显示以下“便携式类库”图标。

Portable Class library的图标 (您将在MSDN Docs中看到的可移植类库的图标。)


要创build一个可移植类库项目,你需要:

1Visual Studio 2010 Service Pack 1(SP1) (795KB安装程序,1.48GB ISO

2便携式图书馆工具 CTP(1.38MB)

安装上述更新后,您将获得一个新的可移植类库的项目模板:

在这里输入图像说明

(以上内容来自MSDN)

2014年更新:

便携式类库是Visual Studio 2014的一部分。

这是一个可以在各种平台上运行的类库。

我发现文件有点难以理解,所以我试图在这里弄清楚一点。

可移植类库是为了让程序员创build可运行于Xbox 360,Windows Phone,Silverlight和.NET Framework(4及以上)等多种平台的项目而构build的。 这是通过省略一些特定的API来实现的,这些API是您select的目标平台不支持的,这会导致您丢失一些.Net Framework的可用function。

因此,我们可以说,在Portable class library和普通class library之间进行select取决于您的项目的目标平台。 如果您希望您的应用程序在带有Windows操作系统的Xbox和台式计算机上工作,则最好节省您的时间并使用PCL,除此之外,普通类库也可以。

欲了解更多信息请访问文档页面

现在有一种新的开放源代码技术叫.Net Standard,它将取代PCL。 .NET Standard解决了所有平台上的.NET开发人员的代码共享问题,它将您期望和喜爱的所有API用于所需的环境:桌面应用程序,移动应用程序和游戏以及云服务:

  • .NET标准是一组所有.NET平台必须实现的API。 这将统一.NET平台,并防止未来的碎片化。
  • .NET Standard 2.0将由.NET Framework,.NET Core和Xamarin实现。 对于.NET Core,这将添加许多已经请求的现有API。
  • .NET标准2.0包含一个用于.NET Framework二进制文件的兼容性填充,大大增加了可从.NET标准库中引用的一组库。
  • .NET Standard将取代可移植类库(PCL),作为构build多平台.NET库的工具。

您可以在GitHub上的dotnet / standard仓库中看到.NET Standard API定义。

参考