加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-core – 在定位.NET Core时引用旧的(完整的.NET Framewo

发布时间:2020-12-15 23:58:55 所属栏目:asp.Net 来源:网络整理
导读:我正在开发.Net Core上的Web应用程序,但由于.Net Core仍处于开发阶段,因此使用的某些库尚未构建在Core上. 我知道我可以在我的应用程序中使用.Net 4.6来使用旧库,但我不确定在我的应用程序中使用新的.Net Core功能实际上有什么变化. 我知道这种方式我正在失去
我正在开发.Net Core上的Web应用程序,但由于.Net Core仍处于开发阶段,因此使用的某些库尚未构建在Core上.

我知道我可以在我的应用程序中使用.Net 4.6来使用旧库,但我不确定在我的应用程序中使用新的.Net Core功能实际上有什么变化.

我知道这种方式我正在失去多平台功能,但实际上我现在并不需要它,我需要继续使用API??和MVC统一管道,集成依赖项Ingnection容器和其他.Net Core新功能

通过瞄准旧框架,这可能是不可能的?

解决方法

简单而简单的答案是:您无法在.NET Core项目中引用.NET Framework 4.x库,原因很简单,因为它有两个不同的框架,.NET 4.5 / 4.6中提供的许多API在.NET中不可用核心.

但也有一些例外.

>如果您的类库确实以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中使用两个目标来禁用类库.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读