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已成功编译。
希望它可以帮助别人。