これには2 つの適切な答えがあります (さらに、多くの個人的な好みがあります。宗教戦争に関する gizmo のコメントを参照してください)。
パブリックアプリケーションの場合、IMO では標準がMajor.Minor.Revision.Build
最適に機能します。パブリック ユーザーは、使用しているプログラムのバージョンと、バージョンがどれだけ古いかを簡単に知ることができます。
ユーザーがアプリケーションを要求することはなく、展開は IT によって処理され、ユーザーがヘルプ デスクに電話する社内アプリケーションの場合Year.Month.Day.Build
、多くの状況で の方がうまく機能することがわかりました。したがって、このバージョン番号をデコードして、パブリック バージョン番号スキームよりも役立つ情報をヘルプ デスクに提供できます。
しかし、結局のところ、私は何よりも 1 つの推奨事項を提示します。それは、一貫性を維持できるシステムを使用することです。コンパイラが毎回自動的に使用するようにセットアップ/スクリプト化できるシステムがある場合は、それを使用します。
起こりうる最悪の事態は、以前のものと同じバージョン番号のバイナリをリリースすることです。私は最近、自動化されたネットワーク エラー レポート (他の誰かのアプリケーション) を処理しており、年.月.日.コア ダンプに示されているビルド バージョン番号は、アプリケーション自体とリモートでさえ最新ではありません (アプリケーション自体は、実際の番号を含むスプラッシュ スクリーンを使用していました。もちろん、バイナリから引き出されたものではありません)。その結果、クラッシュ ダンプが 2 年前のバイナリ (バージョン番号が示すもの) からのものか、2 か月前のバイナリからのものかを知る方法がないため、正しいソース コードを取得する方法がありません (ソース管理もありません! )