Ошибка WatiN не удалось загрузить сборку


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

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

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

3 73

3 ответа:

UPDATE: этот ответ был написан до выпуска Nuget и применяется только в том случае, если вы не используете Nuget для управления своими зависимостями. Если вы используете Nuget, см. ответ @Nick Jones

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

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

  1. удалить все остальные ссылки на Взаимодействие.SHDocVw.dll
  2. щелкните правой кнопкой мыши ваше решение и выберите "чистое решение"
  3. ссылка на взаимодействие.SHDocVw.dll, которая предоставляется WatiN
  4. построить решение.

надеюсь, что это помогает.

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

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

2) MvcContrib.Mvc3.TestHelper-ci is использование старой версии из WatiN.Ядро.dll (1.3.0.4000) где как MvcContrib.Пакет WatiN использует более новую версию (2.0.0.99)

Если вы установили и ссылались на WatiN с помощью NuGet в VS2010, у вас уже должны быть правильные ссылки, поэтому их не нужно удалять и повторно добавлять. Но вам все равно нужно будет изменить параметр "Embed Interop Types" на False для взаимодействия.Ссылка SHDocVw.

Проверьте свойства ссылки " Interop.SHDocVw.файл DLL." Измените "внедрить типы взаимодействия" на False.

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

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