回答
便攜式類庫是否可用於包含函數庫和無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. CultureInfo.LCID是否可用於Xamarin可移植類庫?
- 2. 有可用於可移植類庫的任何REST庫嗎?
- 3. 爲什麼我應該在Xamarin中使用可移植類庫?
- 4. 從Xamarin Mono Android項目中引用PCL(可移植類庫)
- 5. StreamReader和可移植類庫
- 6. 可移植類庫版本
- 7. 可移植類庫vs類庫
- 8. 向Xamarin Studio添加可移植類庫(以DLL形式)
- 9. Xamarin Visual Studio iOS可移植類庫重建過程
- 10. 創建類庫或可移植類庫更好嗎?
- 11. Windows運行時組件可以引用可移植類庫嗎?
- 12. 用於Android的移植庫
- 13. 目錄類沒有出現在使用xamarin的可移植類庫(PCL)中
- 14. C#可移植類庫 - 使用圖像
- 15. 用於可移植類庫的Wix .NET 4.0.3
- 16. 可移植類庫中的併發ObservableCollection
- 17. 可移植類庫中的System.Security.Cryptography.Xml?
- 18. 可移植類庫中的SafeHandleZeroOrMinusOneIsInvalid
- 19. 使用Xamarin Android和可移植類庫提取zip文件中的文件
- 20. DataAnnotations僅適用於EntityFramework/Linq2Sql類嗎?
- 21. 將Java移植到C#for Xamarin Android庫
- 22. WinRT不支持Assembly.GetCallingAssembly,但用於可移植類庫?
- 23. Xamarin插件僅適用於Visual Studio 2015
- 24. 可移植類庫和.NET ConcurrentDictionary
- 25. 可移植類庫和resx本地化
- 26. 什麼是可移植類庫?
- 27. 可移植類庫和.NET Framework 4.6.x
- 28. 可移植類庫目標框架
- 29. 可移植性依賴scrrun.dll可用嗎?
- 30. 可移植類庫支持Interlocked.Read和'long'重載嗎?
是你甘蔗分享它,但它是有限的參考。我之前在Silverlight中使用過.net基礎應用程序沒有限制使用它和它的跨平臺 –