2005年05月08日
川俣晶の縁側ソフトウェア技術雑記total 7808 count

.NET Frameworkで現在実行中のアセンブリのフルパス名を得る方法

Written By: 川俣 晶連絡先

 非常につまらない話なのですが。

 1つだけ、「罠」になり得る問題があるのでメモっておきます。

状況 §

 複数のアセンブリから構成された.NET Frameworkによるプログラムがあるとします。

 あるアセンブリの中で、主に自分が置かれたパス名を知りたいという理由で、そのアセンブリのファイル名のフルパスを取得したいとします。(実行開始された実行ファイルのフルパスではなく、実行中のDLLのフルパス)

これを取得する式 §

 上記の条件を満たすフルパスを取得する式は以下のようになります。

 (Managed C++で書かれています)

System::Reflection::Assembly::GetExecutingAssembly()->GetModules()[0]->FullyQualifiedName

 ただし、アセンブリにモジュールが1つという条件に適合しない場合、意図せざる結果を返す可能性もあり得ます。おそらく、通常は問題ないでしょう。

 なに? アセンブリとモジュールの区別が付かない? それは困りましたね……。いや私も資料をきちんと見ないと正確なところは言えないのだけれど (汗。

ここにある罠 §

 問題は、FullyQualifiedNameという名前にあります。

 ファイルのパスならPathという言葉が含まれていても良さそうですが、そうではありません。うっかり、ファイルを示すパス名ではなく、何か別の名前であると誤解して読み飛ばすと、永遠に意図したプロパティに辿り着けない悪夢に陥る可能性があります。

Facebook

トラックバック一覧

2005年06月03日.NET Frameworkで現在実行中のモジュールの格納パスを取得する方法From: 屋根裏部屋別館blog

.NET Frameworkで作成されたa.exeファイルと同じディレクトリに何らかのファイル、もしくは別のexeファイル(b.exeとしましょう)があったとします。このa.exeから子プロセスとして、b.exeを起動させたい場合、a.exeのディレクトリにパスが通っていなく、起動ディレクトリをa.exeがあるフォルダ以外に設定していた場合、起動できない可能性があります。 続きを読む

キーワード【 川俣晶の縁側ソフトウェア技術雑記
【技術雑記】の次のコンテンツ
2005年
05月
09日
MFCアプリケーションで.NET Frameworkクラスライブラリにより描画する試行
3days 0 count
total 7709 count
【技術雑記】の前のコンテンツ
2005年
05月
08日
.NET FrameworkのDrawImageメソッドでピクセル等倍での描画を強制する方法
3days 0 count
total 6141 count

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

http://mag.autumn.org/tb.aspx/20050508174309
サイトの表紙【技術雑記】の表紙【技術雑記】のコンテンツ全リスト 【技術雑記】の入手全リスト 【技術雑記】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.34 (Alpha-Test) Copyright (c) 2004-2018 Pie Dey.Co.,Ltd.