我目前正在与一个开发团队合作开发一个Visual Basic项目,其中一些项目一旦发布就可以转移到Visual Studio 2015,还有一些人将被困在Visual Studio 2013上个月。在使用RC进行测试时,我们发现Visual Studio将毫无问题地打开2013项目,但很乐意让用户使用VS 2013中用户无法使用的新语言功能,如字符串插值。如果2015用户签入此代码2013用户将收到编译错误。是否有任何项目,解决方案或Visual Studio设置会告诉编译器将功能限制为以前版本的VB.net中可用的功能?理想情况下,编译器在2015年尝试使用这些功能时应返回编译错误。
此功能在项目属性>下的C#中可用。构建>语言版本,但我找不到VB.net的任何等价物,谷歌搜索让我失望。
我只是想提一下,将.Net运行时版本设置为4.5没有用,因为这些新的语言功能是编译器级功能,可以在旧框架上完美运行。
答案 0 :(得分:10)
没有用于设置语言版本的UI功能,但您可以卸载项目文件并将<LangVersion>11</LangVersion>
添加到默认的Visual Basic到2012/2013语言设置。 C#项目在Project Configuration属性组下添加了这个属性,所以为了保持一致性,我在下面的示例中也做了同样的事情。
C#属性页执行相同的操作,但C#使用不同的版本号集。
所有语言版本的完整集合可以是found here。
2002 (VB 7.0)
2003 (VB 7.1)
2005 (VB 8.0)
2008 (VB 9.0)
2010 (VB 10.0)
2012 (VB 11.0)
2015 (VB 14)
刚刚测试过,这对我有用,但我确实需要将外壳更改为:
这导致:
一个很好的构建失败: