リビジョン番号 (インクリメントされた int) に代わるものはありますか? date+time からリビジョン タグ (または必要に応じて識別子) を作成したいと思います (後でタグを日時オブジェクトに変換します)。
リビジョンはできるだけ小さくすることが望ましいです。CouchDB はリビジョンに 765B7D1C のような形式を使用しますが、これがどのように作成されたのか、タイムスタンプなのかどうかはわかりません。
助言がありますか?
次のようなものを使用できます。
DateTime.Now.Subtract(new DateTime(2000, 1, 1)).Days
これは、2000 年 1 月 1 日からの日数を返します (今日の時点では、これは 3566 になります)。
これは、(AssemblyInfo.cs で) アセンブリ バージョンを "1.0.*" として指定した場合に .NET で使用されるものと似ています。もちろん、プロジェクトの開始日など、別の開始日を使用することもできます。
私は最近、同じ思考プロセスを経験しました。あなたが許可した符号付き整数にそれを収める良い方法が見つかりませんでした。代わりに、Maj.{Year-2000}.{MMdd}.{svn Revision} を使用しました。あなたはまだ日付を試してみることができます...ここに問題があります:
1 年 = 365 日 = 8760 時間 = 525600 分。ご覧のとおり、最大 32,000 を指定すると、現在の年にできる最善のことは時間です。それは次の 3.5 年分を記録できるので、次のようにできます。
int revision = (int) (DateTime.Now - new DateTime(2009, 1, 1)).TotalHours;
...そして、これは2012年8月頃に爆発します。または、日を使用する場合、apx 88年を保存できるため、Martinの提案に安全に進むことができます.
日付に基づいて AssemblyInfo にバージョン番号を設定するための一連のマクロである VSVersion Managerを見てください。
マクロはビルドごとに起動されます。
リビジョン フィールドを任意の日付要素 (さまざまな形式の月、日、年) に設定するためのルールを設定し、それらを 1 ずつ増やすか、そのままにしておくことができます。
このサイトには、マクロをインストールするための詳細な手順が含まれています。