回答
便携式类库是否可用于包含函数库和无UI组件的简单类?
当然,虽然更现代的PCL替代品是.NET Core库。 PCL在工具方面存在各种问题,并计算出您需要使用哪种配置文件:.NET Core模型更容易更简单。 (已经有一些曲折和沿途曲折,与project.json
等,但最终.NET核心SDK现已脱离,你会需要的Visual Studio 2017年用它来开发。)
是有可能编写一个非UI类库并在多个平台上共享它?
绝对 - 这正是像Noda Time和Json.NET这样的项目。 (免责声明:我是野田时间的主要作者,所以显然有偏见:)
这里有一点微妙之处在于,可移植项目通常以NuGet包的形式分发,但NuGet中可以有多个不同的程序集包,针对不同的框架。例如,Noda Time 2.0的目标为netstandard1.3
和net45
- netstandard1.3
程序集不支持二进制序列化,或者不支持TimeZoneInfo
作为net45
程序集。
关注此链接:
当你创建一个可移植类库,但是,你可以选择你希望你的代码运行在平台上的组合。您在创建可移植类库时所做的兼容性选择将转换为“配置文件”标识符,该标识符描述了该库支持哪些平台。
https://msdn.microsoft.com/en-us/library/gg597391(v=vs.110).aspx https://www.codeproject.com/Articles/647001/What-are-portable-class-libraries
“这是一个非常基本的问题。”
嗯,你其实列出了三个问题,对不对?我看到Jon Skeet在主体中友好地回答了这两个问题。
所以我只专注于“仅适用于Xamarin的便携式类库?”
当微软在推出.NET Framework 4.0之后提出PCL的想法时,他们的目标是在.NET Framework/Silverlight/Windows Phone等之间共享代码。事实上,他们一开始就没有考虑Xamarin。尽管他们肯定认识Mono和Xamarin。
PCL要求CLR支持可重定目标的类元数据,该元数据当时计划用于.NET Framework 4.5及更高版本。 Microsoft确实将必要的位移回到.NET Framework 4.0,后来作为补丁发布。
可能在微软的帮助下,Mono/Xamarin后来可以改进CLR实现,以便PCL组件可以被使用。他们甚至从微软的帮助下发布Linux和Mac的PCL参考程序集,以便您可以针对它们编译项目。
在初次发布后添加了诸如“portable-net45 + netcore45 + MonoAndroid1 + MonoTouch1”之类的PCL配置文件,并且对NuGet也进行了类似的更改,Mono/Xamarin正式成为.NET生态系统的一部分而他们实际上已在那里多年)。
现在,你应该简单地忘记PCL,并且拥抱.NET标准。这是新的方式,使用起来更简单。
- 1. 为什么我应该在Xamarin中使用可移植类库?
- 2. 可移植类库vs类库
- 3. 向Xamarin Studio添加可移植类库(以DLL形式)
- 4. 用于Android的移植库
- 5. 目录类没有出现在使用xamarin的可移植类库(PCL)中
- 6. 用于可移植类库的Wix .NET 4.0.3
- 7. 可移植类库中的并发ObservableCollection
- 8. DataAnnotations仅适用于EntityFramework/Linq2Sql类吗?
- 9. Xamarin插件仅适用于Visual Studio 2015
- 10. 可移植类库和resx本地化
- 11. 可移植类库和.NET Framework 4.6.x
- 12. 可移植类库目标框架
- 13. 什么是可移植类库?
- 14. 可移植性依赖scrrun.dll可用吗?
- 15. 是否提供适用于Linux的MySQL可移植版本?
- 16. “System.Net.Mail.DeliveryNotificationOptions”仅适用于Exchange吗?
- 17. Application.DoEvents()仅适用于WinForms吗?
- 18. Xamarin跨平台(可移植类)项目编译错误
- 19. 移植仅适用于肖像的应用程序以适用于两种屏幕方向
- 20. 将Android应用程序移植到Xamarin?
- 21. 重用在可移植类库中创建的LINQ表达式
- 22. 任何移植可用于uclibc回溯?
- 23. MailDefinition类仅用于ASP吗?
- 24. 使用命令行csc.exe创建C#可移植类库?
- 25. 如何使用可移植类库和EF代码优先?
- 26. 在C#可移植类库中使用代理(Microsoft.Net.Http)
- 27. 请参阅位于单独的可移植类库项目中的ViewModels和Views
- 28. 基金会5类的label.inline可能仅适用于@media medium-up吗?
- 29. 设计仅适用于STI机型吗?
- 30. 角度$ routeProvider仅适用于html5Mode吗?
是你甘蔗分享它,但它是有限的参考。我之前在Silverlight中使用过.net基础应用程序没有限制使用它和它的跨平台 –