2009-09-22 25 views
73

sto ottenendo il seguente errore WatiN:WatiN Errore Impossibile caricare Assemblea

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

Ho copiato lo Shdocvw.dll dal System32 nella directory bin, ma ancora mi sta dando gli stessi problemi.

+4

Ho installato MvcContrib.Mvc3.WatiN-ci utilizzando NuGet e ho ricevuto lo stesso errore. Questa è stata la prima volta che ho deciso di installare qualcosa, anche se NuGet ... Pensavo che questi problemi fossero alla base di NuGet. – Darragh

risposta

49

AGGIORNAMENTO: questa risposta è stata scritta prima che Nuget venisse rilasciato e si applica solo se NON si sta utilizzando Nuget per gestire le dipendenze. Se si utilizza Nuget, vedere la risposta di @Nick Jones

Ho appena avuto questo problema oggi. È necessario scaricare l'ultima versione di WatiN (sto usando 2.0.10.928) e fare riferimento all'interop.SHDocVw.dll firmato fornito da WatiN.

provare il follwoing:

  1. Rimuovere tutti gli altri riferimenti a Interop.SHDocVw.dll
  2. Tasto destro del mouse la soluzione e selezionare 'Soluzione Clean'
  3. riferimento alla Interop.SHDocVw.dll che viene fornito di WatiN
  4. Crea la tua soluzione.

Spero che questo aiuti.

AGGIORNAMENTO: Nick Jones è corretto. Questo dovrebbe essere non essere un problema se si utilizza NuGet .... ma stavo anche ricevendo questo messaggio quando si utilizza MvcContrib.Mvc3.TestHelper-ci. A prima vista è seems like the '-ci' packages is the way to go ma ho deciso di utilizzare il pacchetto MvcContrib.WatiN per due motivi.

1) Non capisco il "Impossibile caricare il file o l'assembly" messaggio di errore

2) Il MvcContrib.Mvc3.TestHelper-C'è using an old version di WatiN.Core.dll (1.3.0.4000), dove poiché il pacchetto MvcContrib.WatiN utilizza una versione più recente (2.0.0.99)

+41

Inoltre, quando ho aggiunto il refernece, ho dovuto modificare l'opzione per incorporare i tipi di interoperabilità su falso e impostare l'opzione Copia locale su true. – Darragh

+9

In NUnit, abbiamo anche dovuto aggiungere l'attributo [RequiresSTA] al nostro testfixture. – Amir

+0

@MoMo Si prega di non aggiungere commenti Darragh alla risposta. Cambia tipo di intervallo di incorporamento su falso – Pomster

118

Se hai installato e referenziato WatiN utilizzando NuGet in VS2010, dovresti già avere i riferimenti corretti, quindi non devono essere rimossi e ri-aggiunto. Tuttavia, sarà necessario modificare l'impostazione "Incorpora tipi di interoperabilità" su False sul riferimento Interop.SHDocVw.

+3

Grazie, questo lo ha risolto per me.Ho anche dovuto aggiungere [RequiresSTA] come indicato nell'altra risposta. – ssmith

+0

+1 Questo lo ha risolto anche per me. (Sto usando il pacchetto NuGet in VS2010). – JTech

+1

Funziona anche in VS2012. – racingcow

29

Controllare le proprietà del riferimento "Interop.SHDocVw.dll". Cambia il "Incorpora tipi di interoperabilità" in False.

Il problema è che non sta copiando il file dll nella cartella bin. Ma dopo questa impostazione, lo farà correttamente.

Ho avuto lo stesso errore e ora funziona correttamente.

+0

Grazie, ho copiato manualmente in bin \ Debug .. ora funziona –

Problemi correlati