2009-05-20 96 views
0

我正在使用mshtml来解析我的ASP.NET-MVC应用程序中的HTML。在安装了VS2008 Professional的开发计算机上工作良好。在安装了VS Express 2008/WebDev的分段计算机上工作良好。但是当试图加载没有Visual Studio版本的生产服务器上的COM对象时,它会引发FileNotFoundException。如何在没有安装Visual Studio的机器上使用MSHTML?

Exception type: FileNotFoundException 
    Exception message: Could not load file or assembly 

'Microsoft.mshtml,版本= 7.0.3300.0, 文化=中性 公钥= b03f5f7f11d50a3a' 或一个依赖的 之一。系统 找不到指定的文件。

我不想在生产箱上安装Visual Studio。我读过一个运行C:\ Program files \ Common Files \ modules \ vs_piaredist.exe的suggestion解决了这个问题,但这个目录在我的生产箱中不存在。我如何在生产机器上使用mshtml?

+0

vs_piaredist.exe在临时或开发机器上不存在,但在开发机器上有一个名为vs90_piaredist的文件。 – 2009-05-20 17:08:38

回答

1

从开发机器使用vs90_piaredist似乎是解决方案。互操作程序集称为Microsoft.mshtml.dll,它位于C:\ Program Files \ Microsoft.NET \ Primary Interop程序集。运行vs90_piaredist在生产机器上创建了这个目录,并在那里放置了5个interop dll,包括Microsoft.mshtml.dll。

这个thread对这个问题有一些很好的讨论。

0

是不是mshtml IE依赖?生产箱上安装了什么版本的IE?考虑升级到至少6

+0

IE7。 mshtml.dll位于system32目录中,但由于某种原因,应用程序无法看到它。 – 2009-05-20 16:22:08

0

IE是非托管代码,所以需要有一个互操作层从托管到非托管。 Primary Interop Assembly(PIA)通常由供应商发货。这就是为什么建议您运行piaredist.exe

相关问题