将完整的.NET Framework与现有的ASP.NET核心项目

时间:2016-10-24 11:40:07

标签: .net asp.net-core .net-core

我们有一个当前在.NET Core上运行的ASP.NET核心Web应用程序,它现在需要引用为其构建的内部库,并且只能在完整的.NET Framework上运行。

根据documentation

  

ASP.NET核心应用程序可以在.NET Core或完整的.NET Framework上运行。

...将现有的ASP.NET Core项目更改为在完整的.NET Framework上运行需要哪些步骤?

我似乎无法在文档或Visual Studio工具中找到任何可以在.NET Core和完整.NET Framework之间切换的内容。

2 个答案:

答案 0 :(得分:5)

通过删除netcoreapp1.0中的frameworks部分并将其替换为net4xy来更改project.json应该足够了,其中x和y取决于.Net Framework的版本你想要目标,例如{。1}} .Net 4.6.1。

例如,之前:

net461

后:

"frameworks": {
  "netcoreapp1.0": {
    "dependencies": {
      "Microsoft.NETCore.App": {
        "type": "platform",
        "version": "1.0.1"
      }
    },
    "imports": "dnxcore50"
}

答案 1 :(得分:1)

我猜你在定义这个ASP.NET Core应用程序时必须选择正确的项目类型。选择项目类型时,您可以选择是否要在任何地方运行.NET Core,或者在.NET Framework上运行的.NET Core(从对话框左上角的下拉列表中选择版本) 。

这些应该是新项目对话框中的不同选项。

这样,在您的引用(project.json)中,您将只看到您选择的所选版本和框架依赖项的.NET Framework(通常将.NET Framework引用添加为任何其他项目类型)。

在这个主题中有很多事情发生了,因为project.json正被Microsoft抛弃,转而支持MSBuild xml文件。

这里还有一篇关于这个主题的Scott Hanselman的好文章:http://www.hanselman.com/blog/HowToReferenceAnExistingNETFrameworkProjectInAnASPNETCore10WebApp.aspx

请注意,如果要运行在任何地方运行的.NET Core应用程序,则无法引用完整的.NET Framework库(仅限.NET标准版)。