私のプロジェクト A はプロジェクト B を参照しています。プロジェクト B はサード パーティのアセンブリへの参照を保持しています。プロジェクト A は、プロジェクト B およびサード パーティのアセンブリとは別のフォルダーにあります (別のソフトウェアとの統合のため)。統合フォルダーにアセンブリを配置できることはわかっていますが、モジュールの診断とセットアップに使用する実行可能ファイルと一緒に他のすべてのアセンブリを配置した独自のフォルダーにアセンブリを配置したいと考えています。
MyResolveEventHandler
でプロジェクト Aをサブスクライブし、AppDomain.CurrentDomain
プロジェクト B の正しいアセンブリ パスを正常に設定できます。この問題は、プロジェクト A が、サード パーティのアセンブリが使用されているプロジェクト B のメソッドを呼び出すときに発生します。次に、そのアセンブリをスローFileNotFoundException
し、 でプロジェクト B に設定したフォルダーではなく、統合フォルダーのパスを表示しますMyResolveEventHandler
。
を試してみましAppDomain.CurrentDomain.Load(AssemblyName.GetAssemblyName(@"pathOf3rdPartyAssembly"))
たが、アセンブリが に正常に読み込まれたことがわかりますが、上記Appdomain
と同じものがスローされます。FileNotFoundException
プロジェクト A からプロジェクト B 内で使用されるサード パーティ製アセンブリのアセンブリ パスを設定するにはどうすればよいですか?
編集: 申し訳ありませんが、問題は私自身の隠れたバグが原因でした。FileNotFoundException をスローしていた dll ハイジャック対策を実装しました。実際、プロジェクト B の正しいアセンブリ パスが設定されている場合、これはプロジェクト B で参照されているサード パーティ アプリケーションにも有効です。質問をし、質問をした後。今、私は先に進まなければなりません... :) すべての提案に感謝します! 私はあなたの両方に賛成票を投じます...