Разобрался, вот решение:
Проект MVC ссылался на группу сборок контракта на обслуживание, где ссылался на «CommonServiceContractAssembly.dll». Проект MVC также ссылался на «CommonServiceContractAssembly.dll». Проект MVC и сборки контракта на обслуживание были построены со ссылкой на слегка отличающиеся версии «CommonServiceContractAssembly.dll»
Когда Visual Studio 2010 размышлял на всех сборках, на которые есть ссылки, «Создать строго типизированное представление», я полагаю, что он не знал, как обращаться с немного другой версией «CommonServiceContractAssembly.dll», поэтому отображать отраженные возможности «строго типизированной модели» для любых сборок, зависящих от «CommonServiceContractAssembly.dll».
Исправление заключается в том, чтобы фактически заставить домен приложения Visual Studio 2010 использовать правильную версию «CommonServiceContractAssembly.dll» при запуске Visual Studio 2010. Это было достигнуто с помощью события Post Build следующим образом:
REM. Это необходимо для правильной работы генерации Т4 из моделей.
copy "$ (TargetDir)" CommonServiceContractAssembly.dll "" $ (DevEnvDir) PublicAssemblies \ "/ Y
Поэтому я копирую файл «CommonServiceContractAssembly.dll», на который ссылается «везде», туда, где Visual Studio его загрузит. После того, как я это сделал, все заработало нормально.
Другой вариант - всегда обеспечивать, чтобы все сборки, имеющие общую зависимость, всегда компилировались с одной и той же версией этой зависимости.