我在运行WatIn测试时刚开始收到以下错误。
System.IO.FileNotFoundException:无法加载文件或程序集 'Interop.SHDocVw,Version = 1.1.0.0,Culture = neutral, PublicKeyToken = db7cfd3acb5ad44e'或其依赖项之一。该 系统找不到指定的文件。
我在网上搜索并尝试了以下解决方案,但都没有。
有人可以帮忙吗?
答案 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,然后解决方案成功编译。
希望它有所帮助。