Обновление до .NET 4.0 и получение Не удалось загрузить ссылку на файл или сборку для старой версии DLL, которая была удалена - PullRequest
4 голосов
/ 23 ноября 2010

System.IO.FileLoadException: не удалось загрузить файл или сборку 'FOO, версия = 1.0.3975.20137, культура = нейтральная, PublicKeyToken = 2aec35e026e7fee4' или одна из ее зависимостей. Определение манифеста обнаруженной сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040) Имя файла: 'FOO, версия = 1.0.3975.20137

У меня есть программа на C #, которую мы постоянно обновляем, и она переустанавливается, и кажется, что с тех пор, как я обновил проект с VS2005 до VS2010 и .NET с 2.0 до 4.0, я получаю эту странную ошибку, когда на нее пытаются сослаться старая версия dll из последней установки.

Когда я захожу в каталог, где установлены его Prorgam Files (x86) / .... там находится последняя версия DLL. В коде нет ссылок на старую DLL. Единственный способ исправить это - удалить программу вручную и переустановить. После этого программа работает нормально.

Я растерялся и запутался, почему он хотел бы продолжать ссылаться на старую версию DLL, когда ее даже нет. Я попытался запустить fuslogvw.exe, но он не дал никакой полезной информации. Я также подумал, что это, возможно, проект установки, чтобы я удалил и воссоздал один с нуля. Я также сделал обычное чистое решение и восстановление. Я обыскал все форумы и онлайн, но у большинства людей, похоже, есть проблема, когда старая версия их DLL все еще находится в каталоге программы, а новая DLL не установлена. Моя проблема в обратном.

Ответы [ 2 ]

1 голос
/ 23 ноября 2010

Эта ошибка появлялась, когда действие «Очистить» по какой-то причине забывает удалить все библиотеки в каталоге bin моего проекта, и мне пришлось вручную удалять эти библиотеки. Возможно, вы захотите убедиться, что все соответствующие DLL удаляются как часть процесса обновления. Я предполагаю, что это то, что происходит, когда программа удаляется, именно поэтому она работает тогда.

0 голосов
/ 23 ноября 2010

Я бы начал с того, кто развернул последнюю взломанную версию.

Возможно, их машина неправильно ссылается на плохую / старую версию, будь то в GAC или из-за похмелья из каталога BIN.Кроме того, вы упоминаете переустановку «вручную». Означает ли это, что у вас есть какой-то сервер сборки или другая автоматизация развертывания?Возможно, ссылка на сборку берется им.

По сути, вам необходимо точно отследить, как плохое приложение развертывается на этом компьютере, и исправить его.

...