我听说ASP.NET Core可以针对.NET Framework 4.6.1。这是否意味着它只能使用.NET 4.6.1,或者它可以将.NET 4.6.1与.NET Core一起使用?
答案 0 :(得分:43)
您可以在.NET Core 1.0或.NET Framework 4.5.1+之上运行ASP.NET Core。由于“ASP.NET Core”实际上只是一组NuGet包,因此您可以将它们安装到针对任一框架的项目中。
例如,.NET Core项目如下所示:
"dependencies": {
"Microsoft.AspNetCore.Mvc": "1.0.0",
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.0"
}
},
"frameworks": {
"netcoreapp1.0": { }
}
虽然.NET Framework项目看起来像(在.NET 4.6.1的情况下):
"dependencies": {
"Microsoft.AspNetCore.Mvc": "1.0.0"
},
"frameworks": {
"net461": { }
}
这是有效的,因为Microsoft.AspNetCore.Mvc包具有.NET Framework 4.5.1和.NET Standard Library 1.6的目标。
也可以从一个项目构建两个框架:
"dependencies": {
"Microsoft.AspNetCore.Mvc": "1.0.0",
},
"frameworks": {
"net461": { },
"netcoreapp1.0": {
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.0"
}
}
}
}
在这种情况下,请注意Microsoft.NETCore.App
部分中的frameworks
依赖关系已移动到内部。这是必要的,因为仅在构建netcoreapp1.0
时才需要此依赖关系,而不是net461
。
答案 1 :(得分:4)
您可以同时执行这两项操作 - 即仅定位桌面CLR,Core CLR或两者。要定位桌面Clr 4.6.1,请使用net461
名字对象作为目标框架。要定位Core Clr,请使用netcoreapp1.0
。您可以并排使用它们但感觉有点尴尬 - 为什么在应用程序的情况下你会这样做呢?