Asp.net core 如何在VS2017 final中针对多个框架?
对于ASP.NET Core,我可以在一个项目中针对多个框架(例如Asp.net core 如何在VS2017 final中针对多个框架?,asp.net-core,visual-studio-2017,Asp.net Core,Visual Studio 2017,对于ASP.NET Core,我可以在一个项目中针对多个框架(例如netcoreapp1.1和dnx451) "frameworks": { "netcoreapp1.1": { "dependencies": { "Microsoft.NETCore.App": { "version": "1.1.0", "type": "platform" } }, "imports": [ "
netcoreapp1.1
和dnx451
)
"frameworks": {
"netcoreapp1.1": {
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.1.0",
"type": "platform"
}
},
"imports": [
"dotnet5.6",
"portable-net45+win8"
]
},
"dnx451": {}
},
在Visual Studio 2017的最终版本中,我只能以netcoreapp1.1
或dnx451
为目标,但我认为无法同时以两者为目标
我试图通过设置netcoreapp1.1直接编辑csproj文件来添加第二个框架;dnx451
甚至netcoreapp1.1;dnx451
但由于不支持的框架,在Visual Studio中出现错误
那么,在Visual Studio 2017最终版本的一个项目中,如何将
netcoreapp1.1
和dnx451
作为目标呢?您需要做一些更改。首先,
标记是多目标和的正确标记代码>是分隔符
DNX在RC2的开发过程中被弃用,所以支持DNX的最后一个版本是RC1。dnxcore5x
(以及后来的dotnet5.x
)名字对象被替换为netstandard1.x
(对于类库)和netcoreapp1.x
(对于应用程序)dnx4xx
作为一个整体被弃用,应使用net4xx
此外,当您以.NET Framework(单独或与.NET Core/NetStandard一起)为目标时,您需要定义一个运行时标识符:
win7-x86
或
win7-x64
或者你想要的默认值
更新
作为补充信息。当您针对多个平台时,您需要使用条件来解析包,即Condition=“$(TargetFramework)”==”
1.0.1
否则可能会出现包还原错误是否尝试添加第二个TargetFramework
元素?因此netcoreapp1.1net462
?dnx是一个不推荐使用的名字对象(RC2出现时已不推荐使用)iirc as RC1是支持DNX.RC2及以上版本的最后一个版本,它只支持使用新的dotnet工具运行。您应该使用netxxx
instead发现这个问题以提供更多关于答案的详细信息:对于类库,正确的答案是netstandard1.6;net462
?是的。但是EF核心工具的一个常见解决方法是将类库也设置为netcoreapp1.x
,因为否则工具将找不到ASP.NET核心应用程序之外的DbContext(将DbContext放入类库的常见做法).Dunno如果这在新工具中得到了修复,但这是VS2015在project.json和用于VS的.NET核心工具中的一个限制,请参阅@Dismissile:到目前为止是的。但是大多数project.json设置都没有UIneither@Tseng是的,但我希望VS2017版本能解决这个问题:(