0

我在我的 ASP.NET-MVC 应用程序中使用 mshtml 来解析 HTML。在我安装了 VS2008 Professional 的开发机器上运行良好。在我安装了 VS Express 2008/WebDev 的登台机器上运行良好。但是当尝试在没有 Visual Studio 版本的生产服务器上加载 COM 对象时,它会引发 FileNotFoundException。

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

'Microsoft.mshtml, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 或其依赖项之一。该系统找不到指定的文件。

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

4

3 回答 3

1

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

这个线程对这个问题进行了一些很好的讨论。

于 2009-05-20T17:46:16.767 回答
0

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

于 2009-05-20T15:55:30.920 回答
0

IE 是非托管代码,因此需要有一个互操作层才能从托管到非托管。主互操作组件(PIA) 是通常由供应商提供的组件。这就是为什么建议您运行 piaredist.exe

于 2009-05-20T17:47:45.593 回答