私はアプリを持っていると言う:C:\ MyPrograms \ App.exe動的に読み込まれたアセンブリの場所を取得
このアプリはlibrary.dllを参照していません。 App.exeは動的にアセンブリを読み込むことができます。
とのは、DLLへのパスがCであることを言わせて:\ MyPrograms \ DLLを\
library.dll私は関係なく、私が試したものを、実行アセンブリ(APP.EXE)のパスを取得することはできません。
GetExecutingAssemblyを()
GetEntryAssembly()
AppDomain.CurrentDomain.BaseDirectory
動的にロードされるDLLの場所を取得する方法はありますか?すべてがちょうど返し、例えば、APP.EXE
EDIT 1の場所: 言い換えOP ...
はMYAPP.EXEは、DLLへのパスを渡し経由して、任意のDLLを呼び出すことができます。このDLLは、ユーザーがどこにでも置くことができます。ハードコーディングのパスなどを除外します。
私がしたいのは、動的に読み込まれたDLLの現在の場所を取得できることです。つまり、エラーを処理するには、DLLが入っているのと同じディレクトリにエラーログを書き込むことができます。
ロードされたDLLがどこにあるかを見つけて試しましたが、呼び出しアセンブリ(MyApp.exe)のディレクトリを返すか、まったく返しません。
パスを取得することができますか? –
['AssemblyResolve'](https://msdn.microsoft.com/en-us/library/system.appdomain.assemblyresolve(v = vs.110).aspx)イベントを処理したいようなサウンド... –
あなたはエラーをログに記録していると言いますが、エラーの原因となったDLLをどのように検出していますか?あなたのパスに 'var path = MagicFunctionThatGetsPath(sourceDll)'を置く必要がある行のために、あなたの質問でどのように動作するかのコード例を書くことができますか? 'sourceDll'の使い方を知りたいそのオブジェクトのタイプは何でしょうか。 –