C# で 実行中 アセンブリ の ファイルパス を 取得する 方法

0 件のコメント

実行中ファイル または 実行中アセンブリ のファイルパスを取得する サンプルコード を以下にまとめます。

以下の サンプルコード では、実行中アセンブリが存在するディレクトリを取得したいます。 実行中アセンブリのファイルパスを取得した後、 Path.GetDirectoryName() を利用してディレクトリパスを取得しています。

サンプルコード

namespace Sample
{
    using System.IO;
    using System.Reflection;

    public class Config
    {
        /// <summary>
        /// 設定ファイル名
        /// </summary>
        private static string fileName = @"app.config";

        /// <summary>
        /// 設定ファイルパス
        /// </summary>
        private static string filePath = Path.Combine(
            Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location),
            Config.fileName);

        /// <summary>
        /// Config クラスのインスタンスを初期化します。
        /// </summary>
        public Config()
        {
        }
    }
}

…で、結論ですが、実行中アセンブリ情報が取得できれば良いので、以下のどちらかでファイルパスを取得することができます。

staticなフィールドで取得する場合

Assembly.GetExecutingAssembly().Location

インスタンス中で取得する場合

this.GetType().Assembly.Location