WatiN System.IO.FileNotFoundException Interop.SHDocVw

运行我的WatIntesting时,我刚刚开始收到以下错误。

System.IO.FileNotFoundException:无法加载文件或程序集“Interop.SHDocVw,版本= 1.1.0.0,文化=中立,PublicKeyToken = db7cfd3acb5ad44e”或其依赖项之一。 该系统找不到指定的文件。

我已经search了networking,并尝试了以下解决scheme,没有一个工作。

  • http://linrayusa.blogspot.com/2008/08/vsts-2008-could-not-load-file-or.html
  • WatiN错误无法加载程序集
  • http://blogs.msdn.com/b/dougste/archive/2006/09/05/741329.aspx

任何人都可以协助

我总是最终重新编译watin,所以没有签名,因为我不能使任何build议的解决scheme工作。

你可以在这里获得源代码: http : //watin.org/

打开\ source \ src文件夹中的解决scheme(有VS2008和VS2010版本),打开这两个项目并转到属性 – >签名,取消选中“签署程序集”,然后构build解决scheme。

你应该得到\ source \ src \ Core \ bin(WatiN.Core.dll和Interop.SHDocVw.dll)中的两个DLL – 将这些文件复制到你的项目中,他们应该可以正常工作。

你有没有试过这个:

转到解决scheme资源pipe理器,单击interop dll,在属性更改“embeddedInteroptypes”为FALSE。

最好使用.net studio的NuGet插件,然后通过“Add Library Package Reference”添加对wattin的引用。

Interop.SHDocVw ,Microsoft.mshtml dlls'Embed Embed Interop Types属性设置为False ;

Visual Studio会提供关于如何修改的警告。

我有这个问题,并通过手动将Interop.ShDocVw.dll添加到输出目录来解决它。

您需要Watin附带的Interop.ShDocVw.dll文件,您可能需要将其添加到您的Visual Studio解决scheme或与Watin dll相同的目录(如果尚未存在)。 如果你确实拥有正确的版本,

如果您正在使用Visual Studio TestTools,则应该设置DeploymentAttribute来解决此问题。

例:

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

在我的情况下,我尝试了所有的build议解决scheme,它不起作用。 最后,我以pipe理员权限closures并重新打开了Visual Studio 2015,然后解决scheme已成功编译。

希望它可以帮助别人。