![](/img/trans.png)
[英]Can I use a library which is targeted to 4.5.1 .net framework in a visual studio project of version 4.6.2
[英]Targeted .NET framework for the project depends on Visual Studio version?
我有一个有趣的情况,C# 项目根据 Visual Studio 版本而不是根据项目属性的“应用程序”选项卡中选定的 .NET 目标版本来定位 .NET 框架的版本。
我安装了 VS2013 premium、update 4,并且给定的项目面向 .NET 3.5。
之后我安装了 VS2015 企业版并使用 VS2015 打开了给定项目的解决方案。 Resharper 建议使用 nameof() 运算符(这是 .NET 6.0 功能)并进行编译,但是当我在 VS2013 中打开给定的解决方案时,它不再编译。
这是我在 VS2015 中打开项目时的代码片段:
哪个编译成功。
这是我在 VS20103 中打开项目时的代码片段:
哪个不编译。
有任何线索吗?
更新:
重新表述我的问题。 即使我使用了 .NET 6.0 功能(nameof() 运算符),为什么给定的项目(针对 .NET 3.5)在 VS2015 中完全编译?
这是正常行为。 如果您尝试在 VS 2005 中编译特定于 .NET 4.0 的内容,您将获得相同的结果。 使用你一定VS版本只能通过发展达到一定的.NET版本。
如果我没记错的话:
VS 2005 - .NET 2.0
VS 2008 - .NET 3.5
VS 2010 - .NET 4.0
VS 2013 - .NET 4.5
更新:在这种情况下,.NET 版本确实不相关,因为nameof
运算符是 Roslyn 编译器的一个功能。 不多也不少。 VS 2013 肯定使用了不同的(至少是一个没有覆盖 C# 6 的编译器),因此它不能编译。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.