.NET Coreでプログラムのビルド日時を取得する
2020-06-29
azblob://2022/11/11/eyecatch/2020-06-29-dotnet-build-date-000.jpg

目次

お久しぶりです。石川です。今回は、ASP.NET Coreを使うプロジェクトでビルド日時を取得したくなったのでその方法を紹介します。

早速…

"C# ビルド日時" などのワードで検索を行うとAssemblyのバージョンを参照したりビルド時にリソースファイルを生成したりといろいろな手段があるようですが、今回は本体の生成日時から取得する手段をとります。

というわけで早速ですがコードです。

private static DateTime GetBuildTimeStamp()
{
    var dt = File.GetLastWriteTimeUtc(Assembly.GetExecutingAssembly().Location);
    dt = dt + new TimeSpan(9, 0, 0);

    return dt;
}

ビルド日時を表示したい時にこのメソッドを呼ぶだけで取得できます。

やっている処理としては

  1. Assembly.GetExectuingAssembly().Location で実行しているファイルのパスを取得
  2. 上記パスのファイルの最終更新日時を File.GetLastWriteTimeUtc で取得
  3. TimeSpan(9, 0, 0) を加えてJSTにする

と割と単純な処理です。

わざわざUTCで取得して9時間加算しているのはAzure等にデプロイするとシステム日時設定に引っ張られるかな〜〜〜と思ったからですが、記事を書いていたら必要ないかも…?と思えてきました。時間があれば検証しておきたいです。

ASP.NET Coreのヘルスチェックにビルド日時を表示すると

こんな感じになったりします。string でいい感じにしてるだけです。

短いですが.NET Coreでビルド日時を取得する方法でした。

それでは。