dnx451 实际上意味着 .net 4.5
dnx451 actually means .net 4.5
我使用 Visual Studio 2015 RC
创建了两个项目
- 一个class库
MyLib
,其目标框架是.NET Framework 4.5.1
一个 ASP.NET 5 项目 MyWebApp
引用 MyLib
in project.json
:
"frameworks": {
"dnx451":{
"dependencies":{
"Lib01": "1.0.0-*"
}
},
}
当我尝试构建 MyWebApp
时,出现警告:
MSB3274:无法解析主要参考 "C:\MyWebApp\src\MyLib\bin\Debug\MyLib.dll",因为它是针对“.NETFramework,Version=v4.5.1”框架构建的。这是比当前目标框架“.NETFramework,Version=v4.5”更高的版本。
如果我将 MyLib
的目标框架更改为 4.5,警告将消失。
MyWebApp
似乎是针对 .net Framework 4.5 而不是 4.5.1?
如何使 MyWebApp
引用针对 .net 4.5.1 的库?
这个警告似乎意义不大。它仍然可见,即使 .net 版本的 Web 项目设置为大于库的版本,例如
"net46": {
"dependencies": {
"Lib01": "1.0.0-*"
}
}
另一个有趣的事情是,可以针对 .NET Framework 4.6(最新)构建库,并且仍然 build/run 并使用 dnx451 项目中的 classes(我已经通过了 readonly Queue available仅在 4.6 中作为从 lib 到 Web 应用程序的 IReadOnlyCollection)。
除此之外,据我所知 .net 4.5.1 还没有对 API 进行更改,并且测试 4.5 和 4.5.1 之间的差异并不容易
最后,如果你想摆脱警告,你可以创建 vNext 类型 class 库(包),然后从 ASP.NET 5 应用程序引用它,所以你的 class 库可以像web app一样使用dnx451
我使用 Visual Studio 2015 RC
创建了两个项目- 一个class库
MyLib
,其目标框架是.NET Framework 4.5.1
一个 ASP.NET 5 项目
MyWebApp
引用MyLib
inproject.json
:"frameworks": { "dnx451":{ "dependencies":{ "Lib01": "1.0.0-*" } }, }
当我尝试构建 MyWebApp
时,出现警告:
MSB3274:无法解析主要参考 "C:\MyWebApp\src\MyLib\bin\Debug\MyLib.dll",因为它是针对“.NETFramework,Version=v4.5.1”框架构建的。这是比当前目标框架“.NETFramework,Version=v4.5”更高的版本。
如果我将 MyLib
的目标框架更改为 4.5,警告将消失。
MyWebApp
似乎是针对 .net Framework 4.5 而不是 4.5.1?
如何使 MyWebApp
引用针对 .net 4.5.1 的库?
这个警告似乎意义不大。它仍然可见,即使 .net 版本的 Web 项目设置为大于库的版本,例如
"net46": {
"dependencies": {
"Lib01": "1.0.0-*"
}
}
另一个有趣的事情是,可以针对 .NET Framework 4.6(最新)构建库,并且仍然 build/run 并使用 dnx451 项目中的 classes(我已经通过了 readonly Queue available仅在 4.6 中作为从 lib 到 Web 应用程序的 IReadOnlyCollection)。
除此之外,据我所知 .net 4.5.1 还没有对 API 进行更改,并且测试 4.5 和 4.5.1 之间的差异并不容易
最后,如果你想摆脱警告,你可以创建 vNext 类型 class 库(包),然后从 ASP.NET 5 应用程序引用它,所以你的 class 库可以像web app一样使用dnx451