0

登録不要の COM を使用して、COM コンポーネントを .Net プロセスにロードすることに成功しました。突然何かが変わり (私がランチに出かけている間に、どうやら :-) )、読み込みプロセスが機能しなくなりました。

以前は COM コンポーネントが正しく読み込まれていましたが、現在は FileNotFoundException が発生しています。

ProcMonを実行して何が起こっているのかを調べると、ローダーがレジストリで CLSID を検索し、コンポーネントが登録されていることがわかりました。次に、登録されたパスを調べて、dll がそこにないことを発見します。

登録不要の COM を使用してコンポーネントを構成したときに、ローダーがコンポーネントを探すためにレジストリにアクセスする理由を誰か教えてもらえますか? マニフェストがレジストリよりも優先されると思いましたが、これに関するドキュメントが見つかりません。

4

1 に答える 1

0

原因はVisual Studio Hosting プロセスであることが判明しました。これが関係する場合、アプリケーションのマニフェスト ファイル (COM の依存関係を指定する) は読み取られません。

したがって、簡単な修正は、ホスティング プロセスを無効にすることです。

于 2012-09-12T13:39:10.807 に答える