我真的很想开始使用.NET核心,然后慢慢地将应用程序和库迁移到它上面。然而,我不能现实地升级我的整个代码库来使用.NET核心,然后在生产中测试和部署过多的应用程序。
例如,如果我创建一个新的.NET核心应用程序,并尝试引用我的.NET框架项目之一,我会得到以下结果:
不支持将以下项目作为引用:- Foobar.NetFramework具有与当前项目Foobar.NetCore中的目标不兼容的目标框架。
Foobar.NetCore:.NETCoreApp,Version=v1.0
Foobar.NetFramework:.NETFramework,Version=v4.5
是否可以创建一个新的.NET核心应用程序并引用我现有的.NET框架库?如果是这样,那么这样做的过程是什么?我花了几个小时浏览微软的文档并在GitHub上搜索他们的问题,但我找不到任何关于如何实现这一目标的官方信息,也找不到他们对这一过程的长期愿景是什么。
发布于 2016-07-01 22:55:51
是的,我们目前正在尝试同样的事情。诀窍是确保您支持相同的.NET框架。在project.json文件中,确保框架与您希望包含的项目的框架相匹配。例如:
"frameworks": {
"net46": { --This line here <<<<
"dependencies": {
"DomainModel": {
"target": "project"
},
"Models": {
"target": "project"
}
}
}
},
仅供参考:您可能需要更改您的.NET核心或旧项目的框架来实现这一点。如上所示,只需编辑project.json文件即可更改.NET核心。通过右键单击项目并打开属性,您可以在.NET项目中执行相同的操作。在那里更改框架级别。
一旦你匹配了这两个项目框架,你就应该能够包含它们了。祝好运!
发布于 2017-09-25 04:17:47
这个老问题,但是随着.NetStandard 2.0、.netcore 2.0和vs2017.3的发布,游戏已经改变了。
您可以在.NetCore 2.0中使用完整的.NET框架,但是如何使用呢?
例如,从.NetStandard2引用json.net net45。浏览到该文件夹并选择version net45 (非netstandard1.3)
查看下图中的依赖项,如您所见,没有黄色警告。
包含链接的.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框架库不再可以访问源代码或源代码丢失的情况下,它也很有用,使其仍然可以在新的场景中使用。
https://stackoverflow.com/questions/38148128
复制相似问题