对现有的ASP.NET核心项目使用完整的.NET框架

Use full .NET Framework with existing ASP.NET Core project

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

根据文件:

ASP.NET Core apps can run on .NET Core or on the full .NET Framework.

…要将现有的ASP.NET核心项目更改为在完整的.NET框架上运行,需要执行哪些步骤?

我似乎在文档或Visual Studio工具中找不到在.NET核心和整个.NET框架之间切换的任何内容。


通过删除frameworks中的netcoreapp1.0部分并替换为net4xy部分,可以更改project.json,其中x和y取决于要针对的.NET框架的版本,例如.NET 4.6.1中的net461部分。

例如,之前:

1
2
3
4
5
6
7
8
9
10
"frameworks": {
 "netcoreapp1.0": {
   "dependencies": {
     "Microsoft.NETCore.App": {
       "type":"platform",
       "version":"1.0.1"
      }
    },
   "imports":"dnxcore50"
}

后:

1
2
3
"frameworks": {
 "net461": {}
}

我想在定义这个ASP.NET核心应用程序时,必须选择正确的项目类型。选择项目类型时,可以选择是希望.NET核心在任何地方运行,还是希望.NET核心在.NET框架上运行(从对话框左上角的下拉列表中选择版本)。

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

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

由于Project.json被微软抛弃,取而代之的是msbuild xml文件,所以这个主题有很多内容。

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

请注意,如果要运行任何位置运行的.NET核心应用程序,则不能引用完整的.NET框架库(仅.NET标准)。