.NET Coreでプログラムのビルド日時を取得する

お久しぶりです。石川です。今回は、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でビルド日時を取得する方法でした。

それでは。

FIXER Inc. 石川 順平
  • FIXER Inc. 石川 順平
  • 九州のとある高専卒のFIXER2年目。すき間時間でbotを作ったりAZ系の資格の勉強をしたりしています。まだまだAzure初心者です。趣味はゲームやったりバイクで出かけたりすることです。某MMORPGとか騎空士をしたりもしてます。

%d人のブロガーが「いいね」をつけました。