2009-09-22 25 views
73

estoy recibiendo el siguiente error WatiN:WatiN Error No se pudo cargar Asamblea

Unhandled Exception: System.IO.FileLoadException: Could not load file or assembl y 'Interop.SHDocVw, Version=1.1.0.0, Culture=neutral, PublicKeyToken=db7cfd3acb5 ad44e' or one of its dependencies. The located assembly's manifest definition do es not match the assembly reference. (Exception from HRESULT: 0x80131040) File name: 'Interop.SHDocVw, Version=1.1.0.0, Culture=neutral, PublicKeyToken=db

Copié el SHDocVw.dll de System32 al directorio bin, pero aún así me está dando los mismos problemas.

+4

Instalé MvcContrib.Mvc3.WatiN-ci usando NuGet y recibí el mismo error. Esta es la primera vez que decidí instalar algo a través de NuGet ... ¿Pensé que estos problemas eran tan importantes que se suponía que NuGet debía resolver? – Darragh

Respuesta

49

ACTUALIZACIÓN: Esta respuesta se escribió antes de que se lanzara Nuget y se aplica solo si NO está utilizando Nuget para administrar sus dependencias. Si está usando Nuget, vea la respuesta por @Nick Jones

Acabo de tener este problema hoy. Debe descargar la última versión de WatiN (estoy usando 2.0.10.928) y hacer referencia al Interop.SHDocVw.dll firmado proporcionado por WatiN.

Prueba el follwoing:

  1. Retire todas las demás referencias a Interop.SHDocVw.dll
  2. Haga clic derecho su solución y seleccione 'Limpiar solución'
  3. Referencia del Interop.SHDocVw.dll que se proporciona por WatiN
  4. Construya su solución.

Espero que esto ayude.

ACTUALIZACIÓN: Nick Jones es correcto. Este debería ser no ser un problema si está usando NuGet .... pero también estaba recibiendo este mensaje cuando usaba MvcContrib.Mvc3.TestHelper-ci. A primera vista, es seems like the '-ci' packages is the way to go, pero decidí usar el paquete MvcContrib.WatiN por dos razones.

1) No entiendo el "No se pudo cargar el archivo o ensamblado" mensaje de error

2) El MvcContrib.Mvc3.TestHelper-ci es using an old version de WatiN.Core.dll (1.3.0.4000), donde como el paquete MvcContrib.WatiN está utilizando una versión más nueva (2.0.0.99)

+41

Además, cuando agregué el referéndum, tuve que cambiar la opción para Incrustar tipos de interoperabilidad a falso y establecer la opción Copiar local en verdadero. – Darragh

+9

En NUnit, también tuvimos que agregar el atributo [RequiresSTA] a nuestra tabla de prueba. – Amir

+0

@MoMo Por favor, no se debe agregar el comentario de Darragh a su respuesta. Cambiar los tipos de Interoperación a falso – Pomster

118

Si ha instalado y referenciado WatiN utilizando NuGet en VS2010, ya debe tener las referencias correctas, por lo que no es necesario eliminarlas y re-agregado. Pero aún necesitará cambiar la configuración "Insertar tipos de interoperabilidad" a Falso en la referencia Interop.SHDocVw.

+3

Gracias, esto lo arregló para mí.También tuve que agregar [RequiresSTA] como se indica en la otra respuesta. – ssmith

+0

+1 Esto también lo solucionó. (Estoy usando el paquete NuGet en VS2010). – JTech

+1

Esto también funciona en VS2012. – racingcow

29

Echa un vistazo a las propiedades de la Referencia "Interop.SHDocVw.dll". Cambie los "Tipos de interoperabilidad incrustados" a False.

El problema es que no está copiando el archivo dll en su carpeta bin. Pero después de esta configuración, lo hará correctamente.

Tuve el mismo error, y ahora está funcionando bien.

+0

Gracias, copié manualmente a bin \ Debug ... ahora funciona –

Cuestiones relacionadas