2017-10-09 86 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

相关问题