解决错误 "Microsoft.NETCore.App 1.0.0 does not support framework .NETFramework,Version=v4.6.1"
Solving error "Microsoft.NETCore.App 1.0.0 does not support framework .NETFramework,Version=v4.6.1"
我有一个 ASP.NET Core 1.0 完整应用程序 运行 使用 net461
参考。现在我正在尝试添加另一个框架 - 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后,报错:
Failed to make the following project runnable: MVC6_Full_Version
(.NETCoreApp,Version=v1.0) reason: Expected coreclr library not found
in package graph. Please try running dotnet restore again.
为了解决这个问题,我 运行 dotnet restore
命令但没有成功。
然后,我添加了这个块:
"Microsoft.NETCore.App": {
"version": "1.0.0",
"type": "platform"
},
添加这个块后,我得到了一个不同的错误:
Code: NU1002 Description: The dependency Microsoft.NETCore.App 1.0.0
does not support framework .NETFramework,Version=v4.6.1.
基本上,我想在我的应用程序中添加两个引用 - .NET Framework 4.6.1 和 ASP.NET Core 1.0。
如何解决此错误?
绝对有可能使用 .NET Framework 或 .NET Core 构建 ASP.NET 核心项目。您真的很接近 - 只需进行一些调整:
- 删除
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"
]
}
}
仅 .NET Core 需要 Microsoft.NETCore.App
依赖项,在此处添加它可确保在为该框架构建时可用。
此外,commands
部分已被弃用,可以删除。
我通过更改以下内容在 .net 4.6.1 中引用了 .net 核心 class 库。
在尝试从 .net 4.6.1 引用 .net 核心时出现此错误之前
修复:
原创
{
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.0",
"type": "platform"
},
"Interop.SHDocVw.dll": "1.1.0",
"Microsoft.mshtml.dll": "7.0.3300.1"
},
"frameworks": {
//"net461": {},
"netcoreapp1.0": {
"imports": [
"dotnet5.6",
"portable-net45+win8",
"net461"
]
}
},
"scripts": {
"prepublish": [ "bower install", "dotnet bundle" ]
}
}
更正
{
"dependencies": {
"Interop.SHDocVw.dll": "1.1.0",
"Microsoft.mshtml.dll": "7.0.3300.1"
},
"frameworks": {
"net461": {
},
"netcoreapp1.0": {
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.0"
}
},
"imports": [
"dotnet5.6",
"portable-net45+win8",
"net461"
]
}
},
"scripts": {
"prepublish": [ "bower install", "dotnet bundle" ]
}
}
我有一个 ASP.NET Core 1.0 完整应用程序 运行 使用 net461
参考。现在我正在尝试添加另一个框架 - 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后,报错:
Failed to make the following project runnable: MVC6_Full_Version (.NETCoreApp,Version=v1.0) reason: Expected coreclr library not found in package graph. Please try running dotnet restore again.
为了解决这个问题,我 运行 dotnet restore
命令但没有成功。
然后,我添加了这个块:
"Microsoft.NETCore.App": {
"version": "1.0.0",
"type": "platform"
},
添加这个块后,我得到了一个不同的错误:
Code: NU1002 Description: The dependency Microsoft.NETCore.App 1.0.0 does not support framework .NETFramework,Version=v4.6.1.
基本上,我想在我的应用程序中添加两个引用 - .NET Framework 4.6.1 和 ASP.NET Core 1.0。
如何解决此错误?
绝对有可能使用 .NET Framework 或 .NET Core 构建 ASP.NET 核心项目。您真的很接近 - 只需进行一些调整:
- 删除
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"
]
}
}
仅 .NET Core 需要 Microsoft.NETCore.App
依赖项,在此处添加它可确保在为该框架构建时可用。
此外,commands
部分已被弃用,可以删除。
我通过更改以下内容在 .net 4.6.1 中引用了 .net 核心 class 库。
在尝试从 .net 4.6.1 引用 .net 核心时出现此错误之前
修复:
原创
{
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.0",
"type": "platform"
},
"Interop.SHDocVw.dll": "1.1.0",
"Microsoft.mshtml.dll": "7.0.3300.1"
},
"frameworks": {
//"net461": {},
"netcoreapp1.0": {
"imports": [
"dotnet5.6",
"portable-net45+win8",
"net461"
]
}
},
"scripts": {
"prepublish": [ "bower install", "dotnet bundle" ]
}
}
更正
{
"dependencies": {
"Interop.SHDocVw.dll": "1.1.0",
"Microsoft.mshtml.dll": "7.0.3300.1"
},
"frameworks": {
"net461": {
},
"netcoreapp1.0": {
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.0"
}
},
"imports": [
"dotnet5.6",
"portable-net45+win8",
"net461"
]
}
},
"scripts": {
"prepublish": [ "bower install", "dotnet bundle" ]
}
}