2009-07-29 17 views

答えて

10

任意の数字を(メモリに格納されているデータ型がオーバーフローしていない限り)配置して、好きなように呼び出すことができます。しかし、標準フォーマットは通常、ビルドフィールドに格納されている日付の形式を持っているので、私はあなたがこれをやりたい理由はわかりません。例えば

が、ここで私は仕事どこ我々が使用するアセンブリバージョンの形式は次のとおりです。

5.1.729.1

これは、これは上に構築され、ライブラリのバージョン5.1からのアセンブリであることを私に伝えます7月29日、最初のビルドでした。その後の同じ日のビルドでは、リビジョンフィールドを単にインクリメントします。

+1

+1 - 良い答え。バージョンを実際に日付に基づいて作成する場合、Buildは2000年1月1日からの日数で、Revisionは深夜からの秒数の半分です。 DateTime.Parse( "2000-01-01")。AddDays(version.Build).AddSeconds(version.Revision * 2)は、ビルド日時を返します。 –

+0

これは簡単な形式ではありません。そのバージョンでは、ビルド番号の代わりに日付と時刻を使用するだけで、自動的に現在の方法でインクリメントするのが良いでしょう。私は質問を良く言いたいと思います。自動生成されたバージョン番号の形式を変更したいと思います。 –

+0

うわー、私のものを追加する前に、もう1つのコメントを読んでいるはずです。それがまさに私が必要だったことです、スコット。 –

3

最も簡単な方法は、これを処理する独自のビルドタスクを作成してから、.csprojファイルでタスクを呼び出してデフォルトルールで更新することです。ガイドとして役立つことができるusing a custom MSBuild task to increment version numbersに関する記事があります。私たちは過去にこれと同様のことをしており、うまく動作することを発見しました。

これを行うには、VS2005に含まれているツールはありません。

0

buildinfoコードの関連するフラグメントをビルドスクリプトに組み込むことができます。これは、IronPythonまたはF#をスクリプトツールとして使用するだけでも簡単です。

1

私は、AssemblyVersionなどで使用されているバージョン番号の既存のスキームに固執することをお勧めします。それらはよく知られている意味を持ち、人々に迷惑をかける可能性があります。

しかし、独自のアセンブリレベルの属性を簡単に作成して、日付/時刻に使用できます。残念ながら、DateTimeタイプはメタデータに埋め込むことができないため、文字列を使用するのが最良ですが、属性を使用すると実行時にDateTimeに変換される可能性があります。

関連する問題