68

.NET の System.Version が Major.Minor.Build.Revision として定義されているのはなぜですか? ほとんどの人 (私を含む) は、リビジョンが 3 番目に属し、「ビルド」またはあなたがそれを呼びたいものは最後に属することに同意しているようです。

Microsoft は 3.5.3858.2 のようにでたらめな方法で番号を使用しているのか、それとも名前自体が単に逆なのか? たとえば、Major.Minor.Build.Revision の順序で独自の Version クラスを作成する場合、System.Version に変換するときに最後の 2 つのコンポーネントを交換するのが適切でしょうか。それとも、それを無視して単に名前のふりをしますか?後ろ向きですか?

4

4 に答える 4

34

混乱は、ほとんどの人が「リビジョン」と見なしているものと、マイクロソフトが行っていることだと思います。

  • ビルド:ビルド番号の違いは、同じソースの再コンパイルを表します。これは、プロセッサ、プラットフォーム、またはコンパイラが変更されたため、適切です。

  • リビジョン:名前、メジャー バージョン番号、およびマイナー バージョン番号が同じで、リビジョンが異なるアセンブリは、完全に交換可能であることを意図しています。これは、以前にリリースされたアセンブリのセキュリティ ホールを修正するのに適しています。

おそらく彼らにとってより一般的なセキュリティ修正の角度は、「最もマイナーな」変更として、それを最後に置く正当な理由のようです.

于 2010-06-23T00:37:56.937 に答える
28

少し遅れてパーティーに来ることに気づきましたが、ビルドとリビジョンの順序が「間違っている」理由について 2 ペンスを共有したいと思います。それらが間違った順序であるということではなく、順序が間違っているということです。

結局のところ、アセンブリのバージョンは Major.Minor です。前述のリンクから、マイクロソフトは、「ビルド番号またはリビジョン番号のみが異なるアセンブリの後続バージョンは、以前のバージョンのホットフィックス更新と見なされます」と述べています。【私のこだわり】

ビルドは、同じソースの再コンパイルを表します。Revisionはコードの変更を表しますが、同じ [Major.Minor] バージョンの他のリビジョンと完全に互換性があります。しかし、どちらも優先されません。

したがって、要約すると、次のように考えないでください。

+ Major
|
+-+ Minor
  |
  +-+ Build
    |
    +-+ Revision

代わりに:

+ Major
|
+-+ Minor
  |
  +-+ Build
  |
  +-+ Revision
于 2013-06-25T14:06:10.370 に答える
15

マイクロソフトは、たとえば 3.5.3858.2 のように、でたらめな方法で番号を使用していますか?

たとえば を指定してデフォルトのままにした場合[assembly: AssemblyVersion("1.1.*")]、3 番目の数値は毎日増加し、4 番目の数値は午前 0 時からの秒数を 2 で割った値になります (1 日に複数のビルドがあるかどうかを明確にするため)。

ほとんどの人 (私を含む) は、リビジョンが 3 番目に属し、「ビルド」またはあなたがそれを呼びたいものは最後に属することに同意しているようです。

マイクロソフトは「ビルド」を「日」の同義語として使用しているようです。おそらく、それは「毎日のビルド」の考え方に関連しています。したがって、「リビジョン」は (毎日の) ビルドの別のバージョンです。

于 2010-06-23T00:57:36.853 に答える