登録不要の COM を使用して、COM コンポーネントを .Net プロセスにロードすることに成功しました。突然何かが変わり (私がランチに出かけている間に、どうやら :-) )、読み込みプロセスが機能しなくなりました。
以前は COM コンポーネントが正しく読み込まれていましたが、現在は FileNotFoundException が発生しています。
ProcMonを実行して何が起こっているのかを調べると、ローダーがレジストリで CLSID を検索し、コンポーネントが登録されていることがわかりました。次に、登録されたパスを調べて、dll がそこにないことを発見します。
登録不要の COM を使用してコンポーネントを構成したときに、ローダーがコンポーネントを探すためにレジストリにアクセスする理由を誰か教えてもらえますか? マニフェストがレジストリよりも優先されると思いましたが、これに関するドキュメントが見つかりません。