C# 将项目从ASP.NET 5 RC1迁移到ASP.NET Core 1.0时的依赖关系问题
我很难将我的asp.net(core)应用程序从dnx46转换为.netcoreapp1.0,因为有两个特定的依赖项(Microsoft.Azure.ServiceBus和System.IO.Ports.SerialPort) 乐观地说,我打赌这些功能终有一天会登陆.NETCore。。但与此同时,我发现将我的应用程序从名字对象dnx46转换为.netstandard1.3可以解决ServiceBus依赖性问题 但是,解决System.IO.Ports.SerialPort仍然是一个问题,我不知道如何使其工作。我希望在.netstandard1.3名字对象中导入net462framework将允许查找System.IO.Ports.SerialPort对象,但事实并非如此 我错过了什么 作为参考,这里有my project.json:C# 将项目从ASP.NET 5 RC1迁移到ASP.NET Core 1.0时的依赖关系问题,c#,asp.net-core,dnx,.net-core,.net-core-rc2,C#,Asp.net Core,Dnx,.net Core,.net Core Rc2,我很难将我的asp.net(core)应用程序从dnx46转换为.netcoreapp1.0,因为有两个特定的依赖项(Microsoft.Azure.ServiceBus和System.IO.Ports.SerialPort) 乐观地说,我打赌这些功能终有一天会登陆.NETCore。。但与此同时,我发现将我的应用程序从名字对象dnx46转换为.netstandard1.3可以解决ServiceBus依赖性问题 但是,解决System.IO.Ports.SerialPort仍然是一个问题,我不知道
{
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.0-rc2-3002702",
"type": "platform"
},
"Microsoft.NETCore.Platforms": "1.0.1-*",
"Microsoft.EntityFrameworkCore": "1.0.0-rc2-final",
"Microsoft.EntityFrameworkCore.Sqlite": "1.0.0-rc2-final",
[...more stuff...]
},
"frameworks": {
"netcoreapp1.0": {
"dependencies": {
// To be restored when they'll become available on .net core
// "Microsoft.WindowsAzure.ConfigurationManager": "3.2.1",
// "WindowsAzure.ServiceBus": "3.2.1",
}
},
"netstandard1.3": {
"buildOptions": {
"define": [ "INCLUDE_WINDOWSAZURE_FEATURE" ]
},
// Imports of net462 fixes loading of
// - NewtonSoft.Json
// - System.Runtime.Loader for "Microsoft.NETCore.App"
"imports": [
"net462"
],
"dependencies": {
"Microsoft.NETCore.Portable.Compatibility": "1.0.1-rc2-24027"
"Microsoft.WindowsAzure.ConfigurationManager": "3.2.1",
"WindowsAzure.ServiceBus": "3.2.1",
}
}
}
}
但是,解决System.IO.Ports.SerialPort仍然是一个问题,我不知道如何使其工作。我希望在.netstandard1.3名字对象中导入net462框架将允许找到System.IO.Ports.SerialPort对象,但事实并非如此
当以.NET核心或.NET标准为目标时,您不能引用System.IO.Ports.SerialPort
,因为此契约仅存在于完整的.NET桌面框架中
这个库最终可能会被删除,但在此期间,您必须使用.NET桌面(例如net462
)而不是.NET核心
删除netcoreapp1.0
和netstandard1.3
并添加net462
,它应该可以工作
但是,解决System.IO.Ports.SerialPort仍然是一个问题,我不知道如何使其工作。我希望在.netstandard1.3名字对象中导入net462框架将允许找到System.IO.Ports.SerialPort对象,但事实并非如此
当以.NET核心或.NET标准为目标时,您不能引用System.IO.Ports.SerialPort
,因为此契约仅存在于完整的.NET桌面框架中
这个库最终可能会被删除,但在此期间,您必须使用.NET桌面(例如net462
)而不是.NET核心
删除
netcoreapp1.0
和netstandard1.3
并添加net462
,它应该可以工作。如果您计划部署到windows机箱并以net452
为目标,那么只需依赖net452
。我写了一篇文章来分享我的升级经验,也许会有帮助?起初我有这样一个误解,我会依赖于netstandard1.*
,然后“导入”:“net4*”
,David Fowler嘲笑我,并说了一些“伙计,你做错了!”:P
您应该将project.json框架
更改为如下所示:
"frameworks": {
"net462": { }
}
如果您计划部署到windows机箱并以
net452
为目标,那么只需依赖net452
。我写了一篇文章来分享我的升级经验,也许会有帮助?起初我有这样一个误解,我会依赖于netstandard1.*
,然后“导入”:“net4*”
,David Fowler嘲笑我,并说了一些“伙计,你做错了!”:P
您应该将project.json框架
更改为如下所示:
"frameworks": {
"net462": { }
}
实际上,我没有意识到我可以做相反的事情:拥有一个
net462
框架部分,并在netcoreapp1.0
上进行导入,以获得所有AspNetCore
和EntityFrameworkCore
功能。你不需要为net462
导入netcoreapp1.0
,因为ASP.NET Core和EF Core都是这样与.NET桌面兼容(导入netcoreapp1.0
fornet462
无论如何没有多大意义)明白了,你是对的。最近的重命名和重新版本化风暴让我感觉很好:/我确信EFCore和asp.NET core都需要运行。但事实并非如此。。一开始很困惑。如果我可以问一下,使用导入部分的目的和时间是什么?我实际上没有意识到我可以做相反的事情:使用net462
框架部分,在netcoreapp1.0
上进行导入,以获得所有AspNetCore
和EntityFrameworkCore
功能。您不需要导入netcoreapp1.0
fornet462
,因为ASP.NET核心和EF核心都与.NET桌面兼容(导入netcoreapp1.0
fornet462
没有多大意义)明白了,你说得对。恐怕最近的重命名和重新版本化风暴让我很难受:/我确信EFCore和asp.net core都需要.netcore才能运行,但事实并非如此。。一开始很困惑。如果我可以问一下,使用导入部分的目的和时间是什么?理想情况下,我希望该应用程序能够部署在.net core支持的任何设备上(因此不特别是Windows设备)。在我告诉客户所有在.net上做广告的核心好处之后,瞄准net46*感觉像是一个后备计划。我遵循了Pinpoint的建议和您的建议,将netcoreapp1.0
导入net462
框架,应用程序现在可以编译了。由于您与David Fowler就这个导入/依赖性
概念进行了交谈,您是否对导入的作用有了更清晰的了解?(谈论此导入->框架:{import:[]}
)理想情况下,我希望应用程序能够部署在.net core支持的任何框上(因此不特别是Windows框)。在我告诉客户所有在.net上做广告的核心好处之后,瞄准net46*感觉像是一个后备计划。我遵循了Pinpoint的建议和您的建议,将netcoreapp1.0
导入net462
框架,应用程序现在可以编译了。因为你和David Fowler聊过这段代码