Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WatiN Error Could not Load Assembly

Tags:

watin

I am getting the following WatiN error:

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

I copied the shDocvw.dll from System32 to the bin directory but still it is giving me the same problems.

like image 283
azamsharp Avatar asked Sep 22 '09 00:09

azamsharp


3 Answers

If you've installed and referenced WatiN using NuGet in VS2010, you should already have the correct references, so they don't need to be removed and re-added. But you will still need to change the "Embed Interop Types" setting to False on the Interop.SHDocVw reference.

like image 140
Nick Jones Avatar answered Oct 20 '22 20:10

Nick Jones


UPDATE: This answer was written before Nuget was released and applies only if you are NOT using Nuget to manage your dependencies. If you are using Nuget see the answer by @Nick Jones

I just had this issue today. You need to download the latest version of WatiN (I'm using 2.0.10.928) and reference the signed Interop.SHDocVw.dll that is provided by WatiN.

Try the follwoing:

  1. Remove all other References to Interop.SHDocVw.dll
  2. Right Click your solution and select 'Clean Solution'
  3. Reference the Interop.SHDocVw.dll that is provided by WatiN
  4. Build your solution.

Hope this helps.

UPDATE: Nick Jones is correct. This should not be an issue if you are using NuGet....but I was also getting this message when using MvcContrib.Mvc3.TestHelper-ci. At first glance it seems like the '-ci' packages is the way to go but I decided to use the MvcContrib.WatiN package for two reasons.

1) I don't get the "Could not load file or assembly" error message

2) The MvcContrib.Mvc3.TestHelper-ci is using an old version of WatiN.Core.dll (1.3.0.4000) where as the MvcContrib.WatiN package is using a newer version (2.0.0.99)

like image 30
MoMo Avatar answered Oct 20 '22 18:10

MoMo


Check out the Properties of the Reference "Interop.SHDocVw.dll". Change the "Embed Interop Types" to False.

The problem is that it is not copying the dll file in your bin folder. But after this setting, it will do it properly.

I had the same error, and now its working fine.

like image 32
adeel41 Avatar answered Oct 20 '22 19:10

adeel41