2009-06-09 14 views
0

64ビットマシンで32ビットアプリケーション(x86として構築)を実行しようとしています。私は32ビットのCOMオブジェクトを使用するため、x86として構築しました。私がこれを行うまで、アプリはcomを読み込めませんでした。今度はcomをロードしますが、microsoft.mshtmlアセンブリが見つからないと不平を言っています。このアセンブリは、(.net)依存関係の1つによって使用されます。64ビットマシンで実行中に32ビットアプリケーションがmshtmlアセンブリを見つけられない

エラーメッセージは次のとおりです。

System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.mshtml, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. 
Couldn't find File name: 'Microsoft.mshtml, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 

私はCLSIDの下とWOW3264NodeCLSID下の両方に登録このアセンブリを参照することができます。ただし、WIndows \ Assemblyディレクトリにはありません。

私は、アプリケーションを構築したコンピュータからdllをコピーして、アプリケーションディレクトリに配置しようとしました。その後、私はアプリを実行しようとすると、私は強力な命名についてのセキュリティエラーが発生しました。私はエラーを見つけ、アセンブリをGACに追加する必要があることを発見しました。私は\windows\assemblyにdllをドラッグしてやろうとしましたが、これはうまくいきませんでした。プライベート\公開鍵についてのエラーメッセージが表示されました。

私は、バインディングログを有効にし、それは私が何を得るのです。

===事前バインド状態情報===

LOG: DisplayName = Microsoft.mshtml, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 
(Fully-specified) 
LOG: Appbase = file:///C:/DT/IEService/bin/Debug32bit/ 
LOG: Initial PrivatePath = NULL 
Calling assembly : HTMLConverter, Version=1.0.0.0, Culture=neutral, PublicKeyToken=6ec4c8772a0842ff. 

LOG: This bind starts in default load context. 
LOG: Using application configuration file: C:\DT\IEService\bin\Debug32bit\ServiceConsole.exe.Config 
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v2.0.50727\config\machine.config. 
LOG: Post-policy reference: Microsoft.mshtml, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 
LOG: The same bind was seen before, and was failed with hr = 0x80070002. 

を私は何をすべき?どんな助力も高く評価されます。

答えて

0

マシン上でfslogvwを実行して、アセンブリのバインドの失敗に関する追加情報を取得します。それは原因を逃がすのに役立つはずです。

+0

私は取得したバインディングログを追加して投稿を編集しました。これで十分ですか? –

+0

アプリが既に実行された後、ログがfuslogvwを起動したように見えます。実行し、すべてのバインドをロギングしていることを確認してください。 –

関連する問題