首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在.NET核心项目中引用.NET框架项目?

如何在.NET核心项目中引用.NET框架项目?
EN

Stack Overflow用户
提问于 2016-07-01 22:38:32
回答 2查看 30.5K关注 0票数 61

我真的很想开始使用.NET核心,然后慢慢地将应用程序和库迁移到它上面。然而,我不能现实地升级我的整个代码库来使用.NET核心,然后在生产中测试和部署过多的应用程序。

例如,如果我创建一个新的.NET核心应用程序,并尝试引用我的.NET框架项目之一,我会得到以下结果:

不支持将以下项目作为引用:- Foobar.NetFramework具有与当前项目Foobar.NetCore中的目标不兼容的目标框架。

Foobar.NetCore:.NETCoreApp,Version=v1.0

Foobar.NetFramework:.NETFramework,Version=v4.5

是否可以创建一个新的.NET核心应用程序并引用我现有的.NET框架库?如果是这样,那么这样做的过程是什么?我花了几个小时浏览微软的文档并在GitHub上搜索他们的问题,但我找不到任何关于如何实现这一目标的官方信息,也找不到他们对这一过程的长期愿景是什么。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-01 22:55:51

是的,我们目前正在尝试同样的事情。诀窍是确保您支持相同的.NET框架。在project.json文件中,确保框架与您希望包含的项目的框架相匹配。例如:

代码语言:javascript
复制
"frameworks": {
    "net46": {  --This line here <<<<
      "dependencies": {
        "DomainModel": {
          "target": "project"
        },
        "Models": {
          "target": "project"
        }
      }
    }
  },

仅供参考:您可能需要更改您的.NET核心或旧项目的框架来实现这一点。如上所示,只需编辑project.json文件即可更改.NET核心。通过右键单击项目并打开属性,您可以在.NET项目中执行相同的操作。在那里更改框架级别。

一旦你匹配了这两个项目框架,你就应该能够包含它们了。祝好运!

票数 15
EN

Stack Overflow用户

发布于 2017-09-25 04:17:47

这个老问题,但是随着.NetStandard 2.0、.netcore 2.0和vs2017.3的发布,游戏已经改变了。

您可以在.NetCore 2.0中使用完整的.NET框架,但是如何使用呢?

  1. 您可以构建.NetStandard2类库并引用您的TFM。然后从.NetCore2项目中引用.NetStandard2库。

例如,从.NetStandard2引用json.net net45。浏览到该文件夹并选择version net45 (非netstandard1.3)

查看下图中的依赖项,如您所见,没有黄色警告。

  1. 即使Nuget库尚未准备好移植到.Netstandard 2,您也可以使用库中符合net461的任何

包含链接的.NET核心2/标准2.0公告的报价:

但是,如果某些库尝试使用.NET核心上不可用的方法,则它们可能会在运行时失败

参考:.NET Core App target .NET framework 4.5.2 on Linux

A需要使用.NET核心不可用的第三方.NET库或NuGet包

因此,只有在库或NuGet包使用.NET标准/ .NET核心中不可用的技术的情况下,才需要使用.NET框架。

参考:Choosing between .NET Core and .NET Framework for server apps

您现在可以使用Visual Studio201715.3从.NET标准库引用.NET框架库。在.NET框架库不再可以访问源代码或源代码丢失的情况下,它也很有用,使其仍然可以在新的场景中使用。

参考:Announcing .NET Core 2.0

票数 27
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38148128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档