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' またはその依存関係の 1 つ。システムは、指定されたファイルを見つけることができません。

製品ボックスに 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 \ PrimaryInteropAssembliesにあります。vs90_piaredistを実行すると、本番マシンにこのディレクトリが作成され、Microsoft.mshtml.dllを含む5つの相互運用DLLがそこに配置されました。

このスレッドは、この問題についていくつかの良い議論をしました。

于 2009-05-20T17:46:16.767 に答える
0

IEはアンマネージコードであるため、マネージからアンマネージに移行するには相互運用レイヤーが必要です。Primary Interop Assembly(PIA)は、通常ベンダーから出荷されるアセンブリです。これが、piaredist.exeの実行を提案されている理由です。

于 2009-05-20T17:47:45.593 に答える
0

mshtml IE に依存していませんか? 製品ボックスにインストールされている IE のバージョンは何ですか? 少なくとも 6 へのアップグレードを検討してください

于 2009-05-20T15:55:30.920 に答える