WatiN System.IO.FileNotFoundException Interop.SHDocVw

时间:2011-03-25 14:44:00

标签: .net nunit watin

我在运行WatIn测试时刚开始收到以下错误。

  

System.IO.FileNotFoundException:无法加载文件或程序集   'Interop.SHDocVw,Version = 1.1.0.0,Culture = neutral,   PublicKeyToken = db7cfd3acb5ad44e'或其依赖项之一。该   系统找不到指定的文件。

我在网上搜索并尝试了以下解决方案,但都没有。

有人可以帮忙吗?

7 个答案:

答案 0 :(得分:78)

你试过这个:

转到解决方案资源管理器,单击interop dll,在属性中将“嵌入互操作类型”更改为FALSE。

最好在.net studio中使用NuGet插件,然后通过“添加库包参考”添加对wattin的引用。

答案 1 :(得分:7)

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

当然,Visual Studio会给你关于如何修改的警告。

答案 2 :(得分:4)

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

答案 3 :(得分:2)

您需要Watin附带的Interop.ShDocVw.dll文件,您可能需要将其添加到Visual Studio解决方案或与Watin dll相同的目录(如果它还没有)。如果你有它,请确保你有正确的版本。

答案 4 :(得分:2)

我总是最后重新编译watin所以它没有签名,因为我无法使任何建议的解决方案工作。

您可以在此处获取来源:http://watin.org/

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

你应该在\ source \ src \ Core \ bin(WatiN.Core.dll和Interop.SHDocVw.dll)中获得两个DLL - 只需将它们复制到你的项目中它们应该可以正常工作。

答案 5 :(得分:0)

如果您使用的是Visual Studio TestTools,则应设置DeploymentAttribute以解决此问题。

示例:

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

... 

}

答案 6 :(得分:0)

在我的情况下,我尝试了所有建议的解决方案,但它没有用。我最终关闭并使用管理员权限重新打开Visual Studio 2015,然后解决方案成功编译。

希望它有所帮助。