いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

アセンブリのバージョンからビルド日時を求める (Assembly, System.Version, Build, Revision, 自動インクリメント)

最近知ったことなんですが、忘れないうちにメモメモ。

VisualStudioでプロジェクトを作ると、Propertiesというツリーノードの下にAssemblyInfo.csというファイルが追加されます。このファイルの中には、アセンブリに関する設定が記述されているのですがこの中に

[assembly: AssemblyVersion("1.0.0.0")]

という部分があります。これがアセンブリのバージョン指定になります。(プロジェクトのプロパティを開いて、アセンブリ情報のボタンをクリックすると出るダイアログにあるバージョンがこれです。)

で、このバージョンなんですが、

[assembly: AssemblyVersion("1.0.*")]

とすると、BuildとRevisionの値が自動採番されるようになります。ここまでは知っていたのですが、実はこの自動採番される値、規則性がありまして、以下のようになっています。

  • Buildの部分は、2000/01/01からの経過日数
  • Revisionの部分は、0時からの経過秒数を2で割った値

となっています。なので、バージョンが取得できれば逆算できます。当然ながら、自分でバージョンを指定している場合は逆算できません。あくまでAssemblyVersionで1.0.*と指定している場合です。

以下、サンプルです。

アセンブリのバージョンからビルド日時を求める


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。