DOBON.NET DOBON.NETプログラミング掲示板過去ログ

実行ファイルから参照している.dllを調べる方法

環境/言語:[C#]
分類:[.NET]

実行ファイルが何の.dllを参照してきて動いているのかを
調べるにはどうしたらいいでしょうか教えてください。
■No9960に返信(マンゴスチンさんの記事)
> 実行ファイルが何の.dllを参照してきて動いているのかを
> 調べるにはどうしたらいいでしょうか教えてください。
>

コーディングするのであれば
Assembly.GetReferencedAssemblies メソッド でしょうか。

http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemreflectionassemblyclassgetreferencedassembliestopic.asp

一時的に確認したいのであれば、
ILDASMで確認できます。

http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cptools/html/cpconmsildisassemblerildasmexe.asp
■No9961に返信(壱丸3さんの記事)
> ■No9960に返信(マンゴスチンさんの記事)
>>実行ファイルが何の.dllを参照してきて動いているのかを
>>調べるにはどうしたらいいでしょうか教えてください。
>>
>
> コーディングするのであれば
> Assembly.GetReferencedAssemblies メソッド でしょうか。
>
取得することができました。
ありがとうございます。
GetReferencedAssembliesで取得する子とはできたのですが
参照している.dllのパスが取得できません
パスは取得できるのでしょうか?
教えてください。
■No9963に返信(マンゴスチンさんの記事)
> 取得することができました。
> ありがとうございます。
> GetReferencedAssembliesで取得する子とはできたのですが
> 参照している.dllのパスが取得できません
> パスは取得できるのでしょうか?
> 教えてください。

出来るかといえば出来ますけど?
ご自身で少しは調べられましたか?
MSDNを調べればわかると思うんですけどね^^;
下記のキーワードを調べてみてください。
Assembly.GetReferencedAssembliesメソッド
AssemblyNameクラス
Assembly.Loadメソッド
Assembly.Locationプロパティ
> 出来るかといえば出来ますけど?
> ご自身で少しは調べられましたか?
> MSDNを調べればわかると思うんですけどね^^;
> 下記のキーワードを調べてみてください。
> Assembly.GetReferencedAssembliesメソッド
> AssemblyNameクラス
> Assembly.Loadメソッド
> Assembly.Locationプロパティ

AssemblyNameクラスにCodeBaseというのがあり
MSDNにアセンブリの場所を表す URL を取得または設定します。
と書いてあるのですが、
CodeBaseの値はnullを返しています。
アセンブリの URL の場所を表す文字列。 Load(Byte[]) メソッドを使用したときなど、アセンブリがバイト配列から読み込まれた場合、 CodeBase は空の文字列 ("") になります。
表示されないと言うことは
アセンブリがバイト配列から読み込まれた場合だと思うのですが
どうしたらいいかわからない状態です。
■No9971に返信(マンゴスチンさんの記事)
> AssemblyNameクラスにCodeBaseというのがあり
> MSDNにアセンブリの場所を表す URL を取得または設定します。
> と書いてあるのですが、
> CodeBaseの値はnullを返しています。
> アセンブリの URL の場所を表す文字列。 Load(Byte[]) メソッドを使用したときなど、アセンブリがバイト配列から読み込まれた場合、 CodeBase は空の文字列 ("") になります。
> 表示されないと言うことは
> アセンブリがバイト配列から読み込まれた場合だと思うのですが
> どうしたらいいかわからない状態です。

「Assembly.GetReferencedAssembliesメソッド」 で
「AssemblyNameクラス」 のインスタンスを取得してそれを
「Assembly.Loadメソッド」 の引数として渡して取得したAssemblyクラスのインスタンスの
「Assembly.Locationプロパティ」 から取得できませんか?
> 「Assembly.GetReferencedAssembliesメソッド」 で
> 「AssemblyNameクラス」 のインスタンスを取得してそれを
> 「Assembly.Loadメソッド」 の引数として渡して取得したAssemblyクラスのインスタンスの
> 「Assembly.Locationプロパティ」 から取得できませんか?
>

取得できました。
調べ方が甘かったみたいです。
以後気をつけます。
ありがとうございました。
■No9994に返信(マンゴスチンさんの記事)
>>「Assembly.GetReferencedAssembliesメソッド」 で
>>「AssemblyNameクラス」 のインスタンスを取得してそれを
>>「Assembly.Loadメソッド」 の引数として渡して取得したAssemblyクラスのインスタンスの
>>「Assembly.Locationプロパティ」 から取得できませんか?
>>
>
> 取得できました。
> 調べ方が甘かったみたいです。
> 以後気をつけます。
> ありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板