我知道我可以在我的应用程序中使用.Net 4.6来使用旧库,但我不确定在我的应用程序中使用新的.Net Core功能实际上有什么变化.
我知道这种方式我正在失去多平台功能,但实际上我现在并不需要它,我需要继续使用API和MVC统一管道,集成依赖项Ingnection容器和其他.Net Core新功能
通过瞄准旧框架,这可能是不可能的?
解决方法
但也有一些例外.
>如果您的类库确实以portable-net45-win8为目标,则可以使用它.
因为此配置文件确保API表面与.NET Core使用的表面匹配,并且基于System.Runtime.为了能够在.NET Core应用程序或.NET Core类库中导入此类包/库,您需要添加
"frameworks:" { "netcoreapp1.0": { "dependencies : { },"imports": [ "dotnet5.6","portable-net45-win8" ] } }
>如果您的类库以dnx5x / dotnet5.x为目标,则可以按照与上述相同的方式使用它们
>如果您真的很确定,您的类库不使用任何不受支持的API,并且它的所有依赖项都不使用任何不受支持的API
然后你可以在技术上使用相同的技巧,但我建议不要这样做,因为它将允许你导入任何.NET 4.x库(甚至2.0的),你永远不会知道它是否支持.所以不要这样做.
相反,将类库转换为可移植类库和目标netstandard1.x(取决于之前使用的.NET Framework版本,请参阅此matrix).
例如,如果您的类库之前以.NET Framework 4.5.1为目标,则将其转换为netstandard1.2.如果有关于缺少API的任何错误,那么它使用的是.NET Core不支持的API.您必须解决这个问题(使用#if!NETSTANDARD1_2预编译器指令将其从netstandard1.2版本中删除或尝试更高的netstandard版本.您还可以在新project.json中使用两个目标来禁用类库.