Dot-Net

解決錯誤“Microsoft.NETCore.App 1.0.0 不支持框架 .NETFramework,Version=v4.6.1”

  • March 13, 2017

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"
     ]
  }
}

修改 project.json 後,我得到了這個錯誤:

無法使以下項目可執行:MVC6_Full_Version (.NETCoreApp,Version=v1.0) 原因:在包圖中找不到預期的 coreclr 庫。請嘗試再次執行 dotnet restore。

為了解決這個問題,我執行了dotnet restore命令但沒有運氣。

然後,我添加了這個塊:

"Microsoft.NETCore.App": {
 "version": "1.0.0",
 "type": "platform"
},

添加此塊後,我得到了一個不同的錯誤:

程式碼:NU1002 說明:依賴Microsoft.NETCore.App 1.0.0 不支持框架.NETFramework,Version=v4.6.1。

基本上,我想在我的應用程序中添加這兩個引用 - .NET Framework 4.6.1 和 ASP.NET Core 1.0。

如何解決此錯誤?

絕對可以使用 .NET Framework 或 .NET Core 建構 ASP.NET Core 項目。你真的很接近 - 只需要一些調整:

  • 刪除該runtimes部分,除非您打算進行本機編譯(有些不尋常)
  • 將引用Microsoft.NETCore.App放在dependenciesnetcoreapp1.0節中。我已經測試了以下更改,它可以恢復並編譯沒有錯誤:

項目.json

...

  "frameworks": {
     "net461": {

     },
     "netcoreapp1.0": {
        "dependencies": {
           "Microsoft.NETCore.App": {
              "type": "platform",
              "version": "1.0.0"
           }
        },
        "imports": [
           "dotnet5.6",
           "portable-net45+win8"
        ]
     }
  }

Microsoft.NETCore.App依賴項僅對 .NET Core 是必需的,將其添加到此處將確保在為該框架建構時它可用。

此外,該commands部分已被棄用,可以刪除。

引用自:https://stackoverflow.com/questions/38572255