別のアプリケーションでプラグインとして使用されるネイティブ C++ DLL があります。この DLL にはマニフェストが埋め込まれており、アプリケーション外部のフォルダーにあるプライベート アセンブリに依存しています。DLL が見つからないプライベート アセンブリに依存しているため、アプリケーションはプラグイン DLL のロードに失敗します (このアセンブリは、アプリケーション ディレクトリにも winsxs フォルダーにもありませんが、場所がによって制御されていないプラグイン ディレクトリにあります)。アプリケーション)。問題は、システムが自分の特定のディレクトリにあるプライベート アセンブリを見つけられるようにするにはどうすればよいかということです。類推として、 setDllDirectory() に相当するものが必要ですが、アセンブリ用です。または、システムが私のプライベートアセンブリを見つける別の方法。
制約:
私の DLL はプラグインであるため、アプリケーションのディレクトリとサブディレクトリには何もインストールできません。また、アプリケーションの動作を変更することもできません。
winsxs でアセンブリを共有することは避けたいと思います。
また、バージョンの競合を避けるために、単純な DLL (LoadLibrary でロードできる) ではなく、アセンブリを使用する必要があります。
ありがとう。