Включите ведение журнала Fusion и посмотрите, какая сборка связана во время выполнения.
У Хансельмана недавно было сообщение, которое должно помочь в регистрации и проверке результатов.
http://www.hanselman.com/blog/CommentView.aspx?guid=3654c8f3-c5c3-4dee-a01f-c9a8da3ef2fa
Еще одно важное различие, которое следует сделать, заключается в том, что ссылки, добавляемые в проект, являются ссылками во время компиляции и не влияют на способ, которым код связан во время выполнения, кроме как для указания строгого имени, если использовалась сборка со строгим именем. Чтобы выяснить, что происходит во время выполнения, вам нужно просмотреть журналы привязки. В журнале должны быть показаны все попытки, которые среда выполнения делает при поиске сборки. Если сборка не находится в каталоге bin вместе с вашим возможным, она, скорее всего, ищет в GAC и находит версию, которую он не ожидает.
Обратите внимание, что компилятор НЕ использует GAC при обращении к сборкам. Поэтому, скорее всего, у вас есть другая версия, используемая в качестве ссылки в проекте, чем вы установили в GAC.
Кроме того, очень легко узнать, какую версию вы установили в GAC, посмотрев в C: \ Windows \ assembly с помощью Windows Explorer. Версия, указанная в вашем сообщении об ошибке, будет версией, на которую ссылались во время компиляции. Если эти версии не совпадают, это может быть вашей проблемой, если предположить, что Fusion действительно смотрит в GAC (что будет видно по журналу Fusion).