Решение
Как оказалось, проблема была с VMWare. Я установил последнюю версию VMWare и установил ее инструменты для отладки в ВМ. Что-то, что это установило или изменило, вызвало эту проблему. Когда я удалил VMWare, проблема ушла. Итак, я переустановил VMWare без установки его возможностей отладки, и проблема не вернулась.
Обход
Я до сих пор не знаю, почему эта проблема внезапно начала возникать, но я нашел способ взломать ее.
Мне нужно было перейти к свойствам проекта => События сборки и добавить эту строку в командную строку события после сборки:
"C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\sgen.exe" "$(TargetPath)" /force
Это заставляет VS сгенерировать файл. Затем мне пришлось скопировать этот файл вручную в каталог, в котором он его искал:
"C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies"
Теперь я могу запустить свои тесты и пройти их. У меня есть следующие проблемы: 1) я должен помнить, чтобы копировать dll в этот каталог каждый раз, когда я что-то изменяю в сериализуемых классах, и 2) теперь я получаю исключение ThreadInterruptedException, когда тест завершается; таким образом 3) я могу выполнить только один тест за раз.
Не очень хорошее решение, но, по крайней мере, я могу хромать. К сожалению, переделывать все, как предложил Никита Бородулин, не вариант.