ОК, я дошел до сути.
Проблема была в том, что я использовал некоторые строковые расширения. Они были упакованы в библиотеке, написанной давным-давно.
Проблема вызвана пространством имен. Давайте назовем это WS.Extensions
В WS.Extensions у меня также было несколько методов расширения для простых ванильных серверных элементов управления asp.net, и классы, в которых находятся эти расширения, используют операторы для System.Web.UI.
Несмотря на то, что соответствующие библиотеки упоминаются в проекте библиотеки, похоже, это вызывает проблемы с MVC 3 и, на мой взгляд, неясную ошибку. Очевидно, если вы знаете, в чем проблема, но не иначе.
Я переместил все расширения в новую библиотеку без перекрестных выражений, используя операторы, которые ссылаются на пространства имен серверного элемента управления, такие как System.Web.UI.
Я не удалил свой пост, так как думаю, что проблема может возникнуть у других, переходящих от ужасов управления сервером к MVC.
Добавление:
Гадость этой ошибки заключается в том, что она отображается как ошибка компилятора с конкретной строкой, в которой находится «проблема». Закомментирование этой строки просто сдвигает строку, на которую жалуется компилятор, на одну строку вниз. Кроме того, строка не имеет абсолютно НИЧЕГО общего со строками, в которых использовались расширения. Так что никаких подсказок не было.
В результате я бы посчитал это ошибкой компилятора, которая не имеет ничего общего с ASP.NET MVC, 3 или чем-то другим.
Это вызвано ссылками (использованием) пространства имен из приложения ASP.NET MVC 3, когда это пространство имен содержит код, написанный для серверных элементов управления ASP.NET.
Я потерял полдня на этой проблеме, поэтому надеюсь, что это поможет кому-то еще. В результате переименовали вопрос.