繁体   English   中英

项目的目标 .NET 框架取决于 Visual Studio 版本?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM