C# 将项目从ASP.NET 5 RC1迁移到ASP.NET Core 1.0时的依赖关系问题

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仍然是一个问题,我不知道

我很难将我的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:

{
  "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
for
net462
无论如何没有多大意义)明白了,你是对的。最近的重命名和重新版本化风暴让我感觉很好:/我确信EFCore和asp.NET core都需要运行。但事实并非如此。。一开始很困惑。如果我可以问一下,使用导入部分的目的和时间是什么?我实际上没有意识到我可以做相反的事情:使用
net462
框架部分,在
netcoreapp1.0
上进行导入,以获得所有
AspNetCore
EntityFrameworkCore
功能。您不需要导入
netcoreapp1.0
for
net462
,因为ASP.NET核心和EF核心都与.NET桌面兼容(导入
netcoreapp1.0
for
net462
没有多大意义)明白了,你说得对。恐怕最近的重命名和重新版本化风暴让我很难受:/我确信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聊过这段代码