Заставить Visual Studio 2012 использовать старый компилятор C #

Недавно я обнаружил, что (просто) установка Visual Studio 2012 на моем компьютере заставляет Visual Studio 2010 использовать более новый компилятор C #. Это происходит даже при установке языковой версии 4 (http://ericlippert.com/2013/04/04/what-does-the-langversion-switch-do/).

Я хотел знать, можно ли в любом случае заставить Visual Studio использовать старый компилятор. Я думаю, что это невозможно, потому что кажется, что компилятор установлен в папке framework, которая одинакова для .NET 4 и .NET 4.5, но мне было интересно, удалось ли кому-то каким-то образом это сделать.


person Dina    schedule 24.04.2014    source источник
comment
Могу я спросить, зачем тебе это нужно?   -  person Christoph Fink    schedule 24.04.2014
comment
У вас больше нет старого компилятора, он был заменен, когда установщик VS2012 установил .NET 4.5 на ваш компьютер. Полная установка .NET 4.0 удалена, также заменена. Так что нет, не вариант.   -  person Hans Passant    schedule 24.04.2014
comment
@chrfin Я хочу этого, потому что у меня несовместимая среда сборки, а исполняемые файлы ведут себя по-разному в зависимости от того, где они были скомпилированы. Некоторым из моих продуктов нужны .NET 4.5 и C # 5, а некоторым нет. Я хочу управлять компилятором для каждого продукта.   -  person Dina    schedule 24.04.2014
comment
Настроены разные машины сборки с установленными соответствующими средами. Вот как мы это делаем здесь. Или это уже проблема при разработке?   -  person Christoph Fink    schedule 24.04.2014
comment
@chrfin Это действительно вариант, и это то, что мы будем делать, если другого выбора нет. Но у нас много проектов с разными средами, и было бы проще не поддерживать разные наборы машин для сборки.   -  person Dina    schedule 24.04.2014


Ответы (2)


Вы можете использовать компилятор командной строки, см. здесь и запустите свой код на старом компиляторе в действиях после сборки

person Shachaf.Gortler    schedule 24.04.2014
comment
Но компилятор установлен в папке framework, и если на моем компьютере .NET 4.5 или 4.5.1, то у него будет новая версия компилятора. Можно ли вместо 4.0 установить 4.5 и 4.5.1? - person Dina; 24.04.2014

Как я сказал в своем первоначальном вопросе и как некоторые прокомментировали, действительно кажется, что это невозможно. Новый компилятор устанавливается на то же место, что и старый компилятор. Потребуется чистая среда сборки с точным компилятором.

person Dina    schedule 27.04.2014