Затем я обнаружил, что фреймворк не связан напрямую с версией C#, и на одной машине могут сосуществовать несколько компиляторов C#, поэтому, вероятно, компилятор и версия C# должны быть одинаковыми.
Теперь я понимаю, что версия компилятора и версия C# — это не одно и то же...
Командная строка Visual Studio (2010): C:\>csc
Microsoft (R) Visual C# Версия компилятора 4.0.30319.33440
для Microsoft (R) .NET Framework 4.5
Командная строка разработчика для VS 2013: C:\>csc
Microsoft (R) Visual C# Компилятор версии 12.0.30110.0
для C# 5

мы видим, что
- VS 2010 использует компилятор версии 4.0 для C#4 (?? Я просто могу это предположить, потому что это не указано явно);
- VS 2013 использует версию компилятора 12.0 для C# 5 (это явно указано)
Зная, что компиляция с использованием разных языковых версий может привести к разным результатам для пользователя.
Вопросы
[*]Как узнать, какая версия C# (не версия компилятора, а версия языка) использует VS для сборки моего конкретного проекта?[*]Существует ли строгая, ясная и прозрачная связь между версиями компилятора и языка C#?
[*]Могу ли я указать Visual Studio (в случае проблем с переходом из одной версии Studio в другую) использовать другую версию компилятора для моего конкретного решения?
< /ул>
Подробнее здесь: https://stackoverflow.com/questions/228 ... ge-version