什么是可移植类库?


109

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

请参阅System.Object示例。http://msdn.microsoft.com/zh-CN/library/system.object.aspx

我做了一个简短的Google搜索,找不到关于的任何信息Portable Class Library。这里有人知道它是什么吗,或者在哪里可以找到更多有关它的信息?


1
请注意,下周将在Visual Studio 11 Beta中添加额外的可移植类库支持。
大卫·基恩

Answers:


84

2017年10月9日更新:比较/构造.NET Core / Std / PCL的文章 2016年11月23日:Rick Strahl 撰写的文章

2016年10月29日更新:.NETStandard 1-> 2常见问题解答 2016年10月19日更新:这是迄今为止我见过的涵盖.NET Standard 2.0最佳采访/视频。

2016年9月27日更新:.NET Standard 2.0发布公告具有更多详细信息

2016年6月6日更新:本文很好地说明了.NETStandard库机制如何取代大部分PCL

2013年7月10日更新:@shanselman的PCL工会摘要博客文章的状态非常好,其中包含许多具体示例,屏幕截图和链接。将任何其他答案放在阴影下。

2013年5月20日更新:

2013年4月19日更新:Simon Cooper在一篇博客文章中详尽总结了从Intellisense到运行时所有过程的方式


视频:2012年6月14日,第9频道Visual Studio工具箱节目

视频:第9频道深入展示节目,2011年9月27日


2012年9月11日更新:高质量的高级博客文章,其中包含图片,图表和激励示例,展示了MVVM Light和RX如何使用它

2012年4月11日更新:Scott Hanselman撰写的非常棒的端到端文章非常迅速地讲到了开发人员的观点,包括此处的屏幕截图(还包含非常有见地的“如何思考”信息和示例链接)。最后还包括一个资源部分,几乎重复了整个文章:D

2012年7月9日更新:开发团队的Mircea Trofin撰写的该博客系列(到目前为止,是其中一部分)是迄今为止最完整的报道,其中包括屏幕截图和详细的矩阵,这些矩阵显示了您选择中的可用功能。


请参阅可移植库工具公告博客文章,该文章开始于:-

可移植库工具CTP向Visual Studio添加了新的“可移植类库”项目模板,该模板可用于在C#和VB中创建可在各种.NET平台上运行的类库,而无需重新编译。

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

另请参阅此InfoQ摘要文章

另请参阅此发行通知

有关崩溃和肮脏的详细信息,请参阅托管代码工具的多目标准则


2
击败我27秒; p
马克·格雷夫

2
@马克·格雷韦尔:不经常发生,!-但是,如果有什么帮助,您确实击败了@Darin ...
Ruben Bartelink 2011年

4
许多重要细节,但是我认为这可以通过对一个完全陌生的人进行简单的解释而受益。
卢卡斯2014年

@Lucas好吧,我尝试使其保持最新状态已使其成为社区Wiki,因此,随意编辑任何内容都会以您认为有帮助的方式对其进行解释(我发现InfoQ文章很好),顶部的人认为可能是最全面的
鲁本·巴特林克

1
最好对这些文章进行总结并在此处进行简要介绍。目前,有40,450人阅读这些链接,平均要花20分钟(假设),这意味着总共浪费了561天。
Zafar

53
  • 可移植类库项目使您能够编写和构建可在多个.NET Framework平台上工作的托管程序集。您可以创建包含希望在许多项目中共享的代码的类,例如共享的业务逻辑,然后从不同类型的项目中引用这些类。

  • 可移植库工具是Microsoft提供的一个新的Visual Studio外接程序,使您可以创建在各种基于.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类库的参考主题中找到可移植类库项目支持哪些成员。在类的成员表中,受支持的成员旁边会出现以下“便携式类库”图标。

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


要创建可移植类库项目,您需要:

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

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

在安装上述更新之后,您将获得用于可移植类库的新项目模板:

在此处输入图片说明

(以上内容取自MSDN)

2014年更新:

可移植的类库是Visual Studio 2014的一部分。


关于最新的更新,我认为没有Visual Studio 2014,但是PCL似乎包含在Visual Studio 2013中。(至少我拥有社区版)
Jake

7

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


我可以将我的便携式.csproj发送给没有安装这些工具的人吗?
麦角酸

2
要运行可移植类库应用程序,必须在计算机上安装.NET Framework 4的更新。此更新将自动与Visual Studio 2010 SP1一起安装,因此您可以运行可移植类库应用程序而无需在用于开发该应用程序的计算机上进行进一步修改。要在另一台计算机上运行该应用程序,可以手动安装更新。
Jowen 2013年

2

我发现Documents有点难以理解,所以我试图在这里让事情变得清晰一些。

构建可移植类库是为了让程序员创建可以在多个平台(例如Xbox 360,Windows Phone,Silverlight和.NET Framework(4及更高版本))上运行的项目。这是通过省略某些特定的API来实现的,这些特定的API不受所选目标平台的支持,这将使您失去.Net Framework的某些可用功能。

因此,可以说,在Portable class libraryNormal和Normal 之间进行选择class library取决于您项目的目标平台。如果您希望您的应用程序在具有Windows操作系统的Xbox和台式计算机上运行,​​则最好节省时间并使用PCL,但“普通”类库会很好。

有关更多信息,请访问文档页面

现在有一种称为.Net Standard的新的开源技术,它将取代PCL。.NET Standard通过在所需的环境(台式机应用程序,移动应用程序和游戏以及云服务)中引入您期望并喜欢的所有API,为所有平台上的.NET开发人员解决了代码共享问题。

  • .NET Standard是所有.NET平台都必须实现的一组API。这将统一.NET平台并防止将来出现碎片。
  • .NET Standard 2.0将由.NET Framework,.NET Core和Xamarin实现。对于.NET Core,这将添加许多已请求的现有API。
  • .NET Standard 2.0包括针对.NET Framework二进制文件的兼容性填充程序,大大增加了可从.NET Standard库引用的库集。
  • .NET Standard将取代可移植类库(PCL),成为构建多平台.NET库的工具。

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

参考

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.