微软现在在其.NET系列中拥有.NET Core,.NET Framework和Xamarin(Mono).
这里似乎有很多重叠.这些类型的.NET有什么区别?我应该何时选择在我的项目中使用.NET Core,而不是.NET Framework或Xamarin?
我一直在讨论.NET Standard项目和NuGet.我有一个工作项目并已将其上传到NuGet.org.我的项目面向.NET Standard 1.3,它应该支持 .NET Framework 4.6和.NET Core 1.0.
但是当我尝试将我的项目(通过NuGet)添加到一个新的.NET Framework 4.6项目时,依赖关系解析为47个包!它们都是系统库,似乎是Microsoft.NETCore.Platforms或NETStandard.Library 1.6.1的依赖项.(完整PM输出的要点.)
我的项目只导入using了几个库,其中没有一个是我手工添加的; 即它们都是"随.NET标准附带"的库.这些库是:
问题是,我决定让我的项目成为.NET Standard,因为我希望它能够跨.NET Framework和.NET Core应用程序无缝地工作.我认为标准的重点是设置最低级别的兼容性.通过扩展,我想我曾(或许是错误地)假设像System.Console这样的库可以在Core或Framework中自动使用.
当我在同一个解决方案中测试我的Standard项目作为Framework和Core项目中的依赖项时,我没有注意到这样的事情,所以我怀疑这可能是一个NuGet的事情.
这里到底发生了什么?如何在没有大量依赖项的情况下在NuGet上提供我的.NET标准库?
这是我指定我的NuGet包的方式有问题吗?或者我从根本上误解了什么?
.NET标准2.0的概述(示例)表示它现在使用某种兼容性填充程序来修复第三方库兼容性问题.因此,您可以将第三方库与.NET Standard一起使用,直到它不使用.NET Standard没有的任何API.
目前尚不清楚的是
和