Как изменить языковую версию VB.NET в Visual Studio 2015

В Visual Studio 2015 можно выбрать, какая версия языка С# кодируется, как показано здесь.

Я ищу такой же вариант для VB.NET - как я могу ограничить синтаксис и т.д. старыми версиями VB.NET?

Я хочу сделать это, чтобы случайно не использовать функции VB 14 в проекте, в котором я делюсь с кем-то, используя Visual Studio 2012. Я бы предпочел не рассылать свою машину с установкой Visual Studio 2012 или создавать новую виртуальную машину для довольно случайных требований.

ПРИМЕЧАНИЕ. Я не хочу изменять целевую версию .NET Framework.

Ответ 1

У компилятора VB.NET есть опция /langversion. Также поддерживается MSBuild. Но не IDE, это делает его неудобным, чтобы изменить его.

Все еще возможно, вам нужно отредактировать файл .vbproj. Используйте текстовый редактор, который сделает Блокнот. И скопируйте/вставьте этот фрагмент, вставьте его в 4-ю строку, чтобы он был эффективен для всех конфигураций и платформ:

  <PropertyGroup>
     <LangVersion>12</LangVersion>
  </PropertyGroup>

И проверьте, что он эффективен:

Module Module1
    Sub Main()
        Dim test As String
        Console.WriteLine(NameOf(test))
    End Sub
End Module

Вывод:

error BC36716: Visual Basic 12.0 does not support 'nameof' expressions.

Ну, это работает, также отмечен IntelliSense красными squiggles. Вероятно, вы захотите создать свои собственные шаблоны проектов, чтобы вам не приходилось делать это снова и снова. Используйте "Файл" > "Экспорт шаблона".

Ответ 2

Если вы используете ReSharper, то это вариант:

  • Влево Щелкните по проекту в обозревателе решений
  • Выберите окно свойств (а не Свойства проекта - вы хотите, чтобы свойства включались)
  • В параметрах ReSharper есть опция "VB Language Level", которая дает параметры на обратном пути к VB.NET 8.

Я не тестировал, насколько хорошо это работает.