2017-10-09 84 views
0

從Mac OSX CoCoa應用程序引用.NET Framework 4.5類庫項目是否有任何危害?從CoCoa應用程序引用.NET Framework 4.5類庫項目

我聽說,建議使用.NET標準共享庫代碼。但是,似乎在.NET Framework 4.5中可用的更多API在.NET Standard 1.1中不可用(即System.IO.Directory.Create)。

我正在編寫Windows WPF應用程序的OSx版本。理想情況下,我希望在共享庫中共享業務邏輯代碼而不是複製。

的Windows項目必須保留在.NET 4.5,所以如果是去.NET標準路線 - 這將需要在1.1,然而,許多庫是不兼容的。

參見:https://docs.microsoft.com/en-us/dotnet/standard/net-standard

我似乎能夠添加引用一個.NET Framework 4.5的類庫,並消耗大量的庫,並想知道什麼風險的位置(如果有的話)。

+0

這是一個Xamarin.Mac項目嗎?不要使用其他人無法使用的術語。 –

回答

0

從Mac OSX CoCoa應用程序中引用.NET Framework 4.5類庫項目有沒有什麼壞處?

由於.NET Framework 4.5不能在Mac OSX上運行,所以我會說是的,這是有害的。

Windows項目必須保留在.NET 4.5,所以如果要去.NET標準路線 - 它將需要在1.1,但是許多庫不兼容。

如果這些「不兼容的庫」是第三方的開源項目,做的最好的事情是幫助通過提供有助於升級到.NET標準移動它們一起。

請注意,.NET標準1.1缺少幾個API,許多庫需要添加更多的NuGet包來添加缺少的API(請參閱https://apisof.net/)或將目標版本高於1.1以便與.NET Standard兼容。在後一種情況下,您可以將庫多重定位到.NET Framework 4.5以及您可以避開的最低版本的.NET Standard。如果你把兩個庫放到同一個NuGet包中,這幾乎是無縫的。

+0

有趣的 - 所以我一定要使用.NET標準作爲我的共享庫....奇怪的是,引用.NET Framework 4.5實際上似乎工作(至少在我的Mac上) - 甚至能夠使用System創建一個目錄.IO.Directory.Create,我想大多數這些API是不穩定的呢? – user3689167

+0

我不確定您的配置是如何設置的,但.NET Framework不適用於[除Windows之外的任何平臺](https://docs.microsoft.com/zh-cn/dotnet/framework/get-started/system-requirements#supported-server-operating-systems)(和Linux,如果你使用[Mono](http://www.mono-project.com/docs/about-mono/compatibility/))。 .NET Standard增加了[真正的跨平臺支持](https://github.com/dotnet/core/blob/master/release-notes/1.0/1.0-supported-os.md)。我會考慮你的具體情況僥倖,並假設它不會在任何舊的OSX盒子上工作,除非你使用.NET標準。 – NightOwl888

相關問題