Ошибка WatiN Не удалось загрузить сборку - PullRequest
73 голосов
/ 22 сентября 2009

Я получаю следующую ошибку WatiN:

Необработанное исключение: System.IO.FileLoadException: не удалось загрузить файл или сборка Interop.SHDocVw, версия = 1.1.0.0, культура = нейтральная, PublicKeyToken = db7cfd3acb5 ad44e 'или одна из его зависимостей. определение манифеста локализованной сборки не соответствует сборке ссылка. (Исключение из HRESULT: 0x80131040) Имя файла: Interop.SHDocVw, версия = 1.1.0.0, культура = нейтральная, PublicKeyToken = дБ

Я скопировал shDocvw.dll из System32 в каталог bin, но он все еще вызывает у меня те же проблемы.

Ответы [ 3 ]

122 голосов
/ 15 апреля 2011

Если вы установили и ссылаетесь на WatiN, используя NuGet в VS2010, у вас уже должны быть правильные ссылки, поэтому их не нужно удалять и повторно добавлять. Но вам все равно нужно будет изменить настройку «Внедрить типы взаимодействия» на «Ложь» в ссылке Interop.SHDocVw.

49 голосов
/ 23 сентября 2009

ОБНОВЛЕНИЕ: Этот ответ был написан до выпуска Nuget и применяется только в том случае, если вы НЕ используете Nuget для управления своими зависимостями. Если вы используете Nuget, посмотрите ответ @Nick Jones

У меня только что была эта проблема сегодня. Вам необходимо скачать последнюю версию WatiN (я использую 2.0.10.928) и ссылаться на подписанный файл Interop.SHDocVw.dll, предоставленный WatiN.

Попробуйте следующее:

  1. Удалить все другие ссылки на Interop.SHDocVw.dll
  2. Щелкните правой кнопкой мыши свое решение и выберите «Чистый раствор»
  3. Ссылка на Interop.SHDocVw.dll, предоставленную WatiN
  4. Создайте свое решение.

Надеюсь, это поможет.

ОБНОВЛЕНИЕ: Ник Джонс прав. Это не должно быть проблемой, если вы используете NuGet .... но я также получал это сообщение при использовании MvcContrib.Mvc3.TestHelper-ci. На первый взгляд, кажется, что пакеты '-ci' - это путь , но я решил использовать пакет MvcContrib.WatiN по двум причинам.

1) Я не получаю сообщение об ошибке «Не удалось загрузить файл или сборку»

2) MvcContrib.Mvc3.TestHelper-ci имеет значение , используя старую версию файла WatiN.Core.dll (1.3.0.4000), где в качестве пакета MvcContrib.WatiN используется более новая версия (2.0. 0,99)

31 голосов
/ 09 мая 2011

Проверьте свойства справки "Interop.SHDocVw.dll". Измените «Встраивать типы взаимодействия» на Ложь.

Проблема в том, что он не копирует файл dll в папку bin. Но после этой настройки он все сделает правильно.

У меня была такая же ошибка, и теперь она работает нормально.

...