WatiN System.IO.FileNotFoundException Interop.SHDocVw - PullRequest
39 голосов
/ 25 марта 2011

Я только что начал получать следующую ошибку при запуске моих тестов WatIn.

System.IO.FileNotFoundException: Не удалось загрузить файл или сборку 'Interop.SHDocVw, Version = 1.1.0.0,Культура = нейтральная, PublicKeyToken = db7cfd3acb5ad44e 'или одна из ее зависимостей.Система не может найти указанный файл.

Я искал в Интернете и пробовал следующие решения, ни одно из которых не работает.

Кто-нибудь может помочь?

Ответы [ 7 ]

78 голосов
/ 04 июня 2011

Вы пробовали это:

Перейдите в обозреватель решений, нажмите на interop dll, в свойствах измените «Embed Interop types» на FALSE.

Лучше всего использовать дополнение NuGet для .net studio, а затем добавить ссылку на wattin через «Добавить ссылку на пакет библиотеки».

7 голосов
/ 22 сентября 2012

Установка для свойства Interop.SHDocVw, Microsoft.mshtml dlls 'Embed Interop Types значения False;

Конечно, Visual Studio будет предупреждать вас о том, как вносить изменения.

4 голосов
/ 29 марта 2011

У меня возникла эта проблема, и я смог ее обойти, вручную добавив Interop.ShDocVw.dll в выходной каталог.

2 голосов
/ 25 марта 2011

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

Вы можете получить источник здесь: http://watin.org/

Откройте решение в папке \ source \ src (есть версии VS2008 и VS2010), откройте оба проекта и перейдите в свойства -> Подписание, снимите флажок «подписать сборку» и соберите решение.

Вы должны получить две библиотеки DLL в \ source \ src \ Core \ bin (WatiN.Core.dll и Interop.SHDocVw.dll) - просто скопируйте их в свой проект, и они должны работать нормально.

2 голосов
/ 25 марта 2011

Вам необходим файл Interop.ShDocVw.dll, который должен поставляться с Watin, возможно, вам придется добавить его в решение Visual Studio или в тот же каталог, что и Watin dll, если его там еще нет. В случае, если у вас есть, убедитесь, что у вас правильная версия.

0 голосов
/ 01 мая 2017

В моем случае я попробовал все предложенные решения, и это не сработало. В итоге я закрыл и снова открыл Visual Studio 2015 с правами администратора, и затем решение было успешно скомпилировано.

Надеюсь, это кому-нибудь поможет.

0 голосов
/ 04 июня 2011

Если вы используете Visual Studio TestTools, вы должны установить DeploymentAttribute для решения этой проблемы.

Пример:

[DeploymentItem( @"your_path\Interop.SHDocVw.dll" )]
public class WatinTestSuite {

... 

}
...