WatiN System.IO.FileNotFoundException Interop.SHDocVw

梦想的初衷 提交于 2019-11-27 12:42:07

问题


I have just started to receive the following error when running my WatIn tests.

System.IO.FileNotFoundException : Could not load file or assembly 'Interop.SHDocVw, Version=1.1.0.0, Culture=neutral, PublicKeyToken=db7cfd3acb5ad44e' or one of its dependencies. The system cannot find the file specified.

I have searched the web and tried the following solutions, none of which work.

  • http://linrayusa.blogspot.com/2008/08/vsts-2008-could-not-load-file-or.html
  • WatiN Error Could not Load Assembly
  • http://blogs.msdn.com/b/dougste/archive/2006/09/05/741329.aspx

Can anyone assist?


回答1:


I always end up recompiling watin so it isn't signed, as I couldn't make any of the suggested solutions work either.

You can get the source here: http://watin.org/

Open the solution in the \source\src folder (there are VS2008 and VS2010 versions), open both projects and go properties -> Signing, uncheck 'sign the assembly', and build the solution.

You should get two DLLs in \source\src\Core\bin (WatiN.Core.dll and Interop.SHDocVw.dll) - just copy these into your project and they should work Ok.




回答2:


Have you tried this:

Go to solution explorer, click on the interop dll, in properties change "Embed Interop types" to FALSE.

Best to use NuGet addon for .net studio and then add reference to wattin via "Add Library Package Reference".




回答3:


Setting the Interop.SHDocVw, Microsoft.mshtml dlls' Embed Interop Types property to False;

Off course Visual Studio would give you warnings on how to ammend.




回答4:


I had this problem and got around it by manually adding the Interop.ShDocVw.dll into the output directory.




回答5:


You need the Interop.ShDocVw.dll file that should have come with Watin, you might have to add it to your visual studio solution or to the same directory as the Watin dll's if it's not already there. In the case that you do have it make sure that you have the correct version.




回答6:


If you are using the Visual Studio TestTools you should set the DeploymentAttribute to solve this Problem.

Example:

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

... 

}



回答7:


In my case, I tried all of the suggested solutions and it did not work. I ended up closing and reopening Visual Studio 2015 with admin privileges, and then the solution compiled successfully.

Hope it helps someone.



来源:https://stackoverflow.com/questions/5433990/watin-system-io-filenotfoundexception-interop-shdocvw

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!