Ich erhalte den folgenden WatiN-Fehler:
Nicht behandelte Ausnahme: System.IO.FileLoadException: Datei oder Assembly 'Interop.SHDocVw, Version = 1.1.0.0, Kultur = neutral, PublicKeyToken = db7cfd3acb5 ad44e' oder eine ihrer Abhängigkeiten konnte nicht geladen werden. Die Manifestdefinition der gefundenen Assembly stimmt nicht mit der Assemblyreferenz überein. (Ausnahme von HRESULT: 0x80131040) Dateiname: 'Interop.SHDocVw, Version = 1.1.0.0, Kultur = neutral, PublicKeyToken = db
Ich habe die shDocvw.dll von System32 in das bin-Verzeichnis kopiert, aber es gibt mir immer noch die gleichen Probleme.
Antworten:
UPDATE: Diese Antwort wurde vor der Veröffentlichung von Nuget geschrieben und gilt nur, wenn Sie Nuget NICHT zum Verwalten Ihrer Abhängigkeiten verwenden. Wenn Sie Nuget verwenden, lesen Sie die Antwort von @Nick Jones
Ich hatte heute gerade dieses Problem. Sie müssen die neueste Version von WatiN herunterladen (ich verwende 2.0.10.928) und auf die signierte Interop.SHDocVw.dll verweisen, die von WatiN bereitgestellt wird.
Versuchen Sie Folgendes:
Hoffe das hilft.
UPDATE: Nick Jones ist richtig. Dies sollte kein Problem sein, wenn Sie NuGet verwenden ... aber ich habe diese Meldung auch erhalten, wenn Sie MvcContrib.Mvc3.TestHelper-ci verwenden. Auf den ersten Blick scheinen die '-ci'-Pakete der richtige Weg zu sein, aber ich habe mich aus zwei Gründen für das MvcContrib.WatiN-Paket entschieden.
1) Ich erhalte nicht die Fehlermeldung "Datei oder Assembly konnte nicht geladen werden"
2) Das MvcContrib.Mvc3.TestHelper-ci verwendet eine alte Version von WatiN.Core.dll (1.3.0.4000), während das MvcContrib.WatiN-Paket eine neuere Version (2.0.0.99) verwendet.
quelle
Wenn Sie WatiN mit NuGet in VS2010 installiert und referenziert haben, sollten Sie bereits über die richtigen Referenzen verfügen, damit diese nicht entfernt und erneut hinzugefügt werden müssen. Sie müssen jedoch die Einstellung "Interop-Typen einbetten" in der Interop.SHDocVw-Referenz auf "Falsch" ändern.
quelle
Überprüfen Sie die Eigenschaften der Referenz "Interop.SHDocVw.dll". Ändern Sie die "Interop-Typen einbetten" in "Falsch".
Das Problem ist, dass die DLL-Datei nicht in Ihren bin-Ordner kopiert wird. Aber nach dieser Einstellung wird es richtig gemacht.
Ich hatte den gleichen Fehler und jetzt funktioniert es gut.
quelle