【问题标题】:Use full .NET Framework with existing ASP.NET Core project将完整的 .NET Framework 与现有 ASP.NET Core 项目一起使用
【发布时间】:2017-03-06 04:12:26
【问题描述】:

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

根据documentation

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

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

我似乎在文档或 Visual Studio 工具中找不到任何东西来在 .NET Core 和完整的 .NET Framework 之间切换。

【问题讨论】:

  • 您是否需要将项目类型从核心更改为完整的 .net,或者只是将 .NET Core 的引用更改为完整的框架程序集?
  • @JakubSzumiato - 只是参考,运行时框架。我想保留 ASP.NET Core 的新项目结构,并利用“用于构建 Web UI 和 Web API 的统一故事”,以及 ASP.NET Core 为我们提供的其他优势。

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


【解决方案1】:

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

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

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

由于 Microsoft 放弃了 project.json 以支持 MSBuild xml 文件,因此该主题发生了很多事情。

Scott Hanselman 也有一篇关于这个主题的好帖子:http://www.hanselman.com/blog/HowToReferenceAnExistingNETFrameworkProjectInAnASPNETCore10WebApp.aspx

还请注意,如果您想运行在任何地方运行的 .NET Core 应用程序,则不能引用完整的 .NET Framework 库(仅限 .NET Standard)。

【讨论】:

  • 感谢您的回答。我真的很想在不重新创建项目的情况下做到这一点。不过,Scott 的博客文章读起来很有趣,很高兴看到工具如何针对这些场景进行改进。
【解决方案2】:

通过删除frameworks 中的netcoreapp1.0 部分并将其替换为net4xy 来更改您的project.json 就足够了,其中x 和y 取决于您要定位的.Net Framework 的版本,例如net461 用于 .Net 4.6.1。

例如,之前:

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

之后:

"frameworks": {
  "net461": {}
}

【讨论】:

    猜你喜欢
    • 2017-02-13
    • 1970-01-01
    • 2018-12-06
    • 1970-01-01
    • 2019-04-19
    • 2016-11-08
    • 2019-10-22
    • 2023-04-07
    • 1970-01-01
    相关资源
    最近更新 更多