解决错误"Microsoft.NETCore.App 1.0.0不支持框架.NETFramework,Version = v4.6.1"

Sac*_*411 13 .net .net-core project.json asp.net-core asp.net-core-1.0

我有一个使用net461引用运行的ASP.NET Core 1.0完整应用程序.现在我想添加另一个框架 - netcoreapp1.0.为此,我更新了我的project.json,如下所示:

{
   "userSecretsId":"",
   "version":"2.4.0-*",
   "buildOptions":{
      "emitEntryPoint":true,
      "preserveCompilationContext":true
   },
   "dependencies":{
      "Microsoft.ApplicationInsights.AspNetCore":"1.0.0",
      "Microsoft.AspNetCore.Authentication.Cookies":"1.0.0",
      "Microsoft.AspNetCore.Diagnostics":"1.0.0",
      "Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore":"1.0.0",
      "Microsoft.AspNetCore.Identity":"1.0.0",
      "Microsoft.AspNetCore.Identity.EntityFrameworkCore":"1.0.0",
      "Microsoft.AspNetCore.Mvc":"1.0.0",
      "Microsoft.AspNetCore.Mvc.TagHelpers":"1.0.0",
      "Microsoft.AspNetCore.Server.IISIntegration":"1.0.0",
      "Microsoft.AspNetCore.Server.Kestrel":"1.0.0",
      "Microsoft.AspNetCore.StaticFiles":"1.0.0",
      "Microsoft.EntityFrameworkCore":"1.0.0",
      "Microsoft.EntityFrameworkCore.SqlServer":"1.0.0",
      "Microsoft.Extensions.Configuration.CommandLine":"1.0.0",
      "Microsoft.Extensions.Configuration.FileExtensions":"1.0.0",
      "Microsoft.Extensions.Configuration.Json":"1.0.0",
      "Microsoft.Extensions.Configuration.UserSecrets":"1.0.0",
      "Microsoft.Extensions.Logging":"1.0.0",
      "Microsoft.Extensions.Logging.Console":"1.0.0",
      "Microsoft.Extensions.Logging.Debug":"1.0.0",
      "Microsoft.VisualStudio.Web.BrowserLink.Loader":"14.0.0",
      "Microsoft.VisualStudio.Web.CodeGenerators.Mvc":"1.0.0-preview2-final"
   },
   "tools":{
      "BundlerMinifier.Core":"2.0.238",
      "Microsoft.AspNetCore.Razor.Tools":"1.0.0-preview2-final",
      "Microsoft.AspNetCore.Server.IISIntegration.Tools":"1.0.0-preview2-final",
      "Microsoft.Extensions.SecretManager.Tools":"1.0.0-preview2-final"
   },
   "commands":{
      "ef":"EntityFramework.Commands",
      "web":"Microsoft.AspNetCore.Server.Kestrel"
   },
   "frameworks":{
      "net461":{

      },
      "netcoreapp1.0":{
         "imports":[
            "dotnet5.6",
            "portable-net45+win8"
         ]
      }
   },
   "runtimes":{
      "win10-x64":{

      },
      "win81-x64":{

      },
      "win8-x64":{

      },
      "win7-x64":{

      }
   },
   "publishOptions":{
      "exclude":[
         "**.user",
         "**.vspscc",
         "wwwroot",
         "node_modules"
      ]
   },
   "scripts":{
      "prepublish":[
         "npm install",
         "bower install",
         "gulp clean",
         "gulp min"
      ]
   }
}
Run Code Online (Sandbox Code Playgroud)

修改project.json后,我收到此错误:

无法使以下项目可运行:MVC6_Full_Version(.NETCoreApp,Version = v1.0)原因:在包图中找不到预期的coreclr库.请尝试再次运行dotnet restore.

要解决这个问题,我跑了dotnet restore命令,但没有运气.

然后,我添加了这个块:

"Microsoft.NETCore.App": {
  "version": "1.0.0",
  "type": "platform"
},
Run Code Online (Sandbox Code Playgroud)

添加此块后,我得到一个不同的错误:

代码:NU1002描述:依赖Microsoft.NETCore.App 1.0.0不支持框架.NETFramework,Version = v4.6.1.

基本上,我想在我的应用程序中添加两个引用 - .NET Framework 4.6.1和ASP.NET Core 1.0.

我该如何解决这个错误?

Nat*_*ini 13

使用.NET Framework或.NET Core构建ASP.NET Core项目绝对是可能的.你真的很接近 - 只需要一些调整:

  • 删除该runtimes部分,除非您打算进行本机编译(有点不寻常)
  • 将引用Microsoft.NETCore.App放在该dependencies部分netcoreapp1.0部分中.我测试了以下更改,它可以无错误地恢复和编译:

project.json

...

   "frameworks": {
      "net461": {

      },
      "netcoreapp1.0": {
         "dependencies": {
            "Microsoft.NETCore.App": {
               "type": "platform",
               "version": "1.0.0"
            }
         },
         "imports": [
            "dotnet5.6",
            "portable-net45+win8"
         ]
      }
   }
Run Code Online (Sandbox Code Playgroud)

Microsoft.NETCore.App相关性时,才需要对.NET的核心,并在这里加入它将确保建立在该框架时,它的可用.

此外,该commands部分已被弃用,可以删除.