Наши рабочие машины и машины для разработки работают под управлением .Net 4.5, но наши серверы сборки — .Net 4.0. Мы нацелены на .Net 4.0, и я пытаюсь оценить влияние сборки на машину с 4.0. В prod во время выполнения я знаю, что он будет использовать сборки 4.5, но...
Я прочитал документ от MS о критических изменениях в VS 2012, но я пытаюсь понять, как это работает под прикрытием. Я могу воспроизвести проблему для примера лямбда. Когда я запускаю приложение на сервере 4.0 и 4.5, оно ведет себя одинаково. Я бы подумал, что среда выполнения исправит проблему в 4.5. http://msdn.microsoft.com/en-us/library/vstudio/hh678682(v=vs.110).aspx.
Я также читал о проблемах совместимости с 4.5: http://msdn.microsoft.com/en-us/library/hh367887%28v=vs.110%29.aspx
Я полагаю, что во время компиляции он использует ссылки из C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0, а во время времени выполнения использует C :\Windows\Microsoft.NET\Framework\v4.0.30319.
Мой вопрос заключается в том, как VS ведет себя по-разному в 2010 и 2012 годах. Это связано с тем, что он использует другой MSBuild.exe или другой CSC.exe? Я запускаю это через монитор процессов, но это не ясно, потому что он показывает MSBuild в программных файлах, но я не могу его найти.