我在c#中有一个使用WatiN的程序。它在我的开发窗口7中编译并运行良好。但是,当我将程序复制到azure中的Windows 2012数据中心时,当应用程序尝试启动Internet Explorer的实例(存在于Windows 2012数据中心中)时,它会抛出异常:
System.IO.FileNotFoundException:无法加载文件或程序集 ' Microsoft.mshtml,Version = 7.0.3300.0,Culture = neutral, 公钥= b03f5f7f11d50a3a'或其中一个依赖项。该 系统找不到指定的文件。文件名:' Microsoft.mshtml, Version = 7.0.3300.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a' 在 WatiN.Core.Native.InternetExplorer.IEWaitForComplete.WaitForCompleteOrTimeout() 在WatiN.Core.IE.WaitForComplete(Int32 waitForCompleteTimeOut)at WatiN.Core.Browser.GoTo(Uri url)at WatiN.Core.IE.FinishInitialization(Uri uri)
我有点迷失在这个异常上,服务器上缺少什么?
感谢。
答案 0 :(得分:3)
它是一个标准的互操作程序集,安装在任何开发机器上的GAC中。不完全确定它是如何到达那里的,很可能是VS安装程序将它放在那里。但它不会在Azure节点上的GAC中。
打开项目的“引用”节点,然后选择Microsoft.mshtml条目。将Copy Local属性更改为True。重建,您现在将在构建目录中拥有程序集的副本。将其与其余可执行文件一起复制到Azure节点。