2010年07月11日

実行中のアセンブリのパスを得る

   このエントリーをはてなブックマークに追加 Clip to Evernote


で、現在実行中のコードを格納しているアセンブリのパスを得ることができます が、このcodeBaseは、

file:///C:/Sample/bin/Debug/CodeBaseSample.EXE

といった形式で、Uri形式の文字列です。
これを

C:\Sample\bin\Debug\CodeBaseSample.EXE

と通常のローカルパスの形式に変換するには、


と、Uri.LocalPathプロパティを使います。


この記事へのコメント
System.Reflection.Assembly.GetExecutingAssembly().Location

でも期待する値を取得できますよ。
Posted by Insect at 2010年07月12日 09:29
そうですねー。

そういう意味では、僕の書いたコードは、正確には、
「実行中のアセンブリのパスを得る」
ではなくて、
「実行中のアセンブリのオリジナルパスを得る」
ですね。
Webアプリなどで、シャドウコピーされたパスを求めたいならば、
Location プロパティですが、シャドウコピー前のオリジナルの場所を求めたいならば、
CodeBaseです。
目的が違うと言えば、違うのですが、シャドウコピー先のパスを求めたいことは
ほとんどないので、僕は、CodeBaseを使うようにしています。
Posted by Gushwell at 2010年07月12日 21:26
 

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/gushwell/52044185