saber - ¿Por qué se define System.Version en.NET como Major.Minor.Build.Revision?
como saber que net framework tengo instalado windows 7 (4)
¿Microsoft usa los números de esta manera casual, por ejemplo, 3.5.3858.2?
Si lo deja por defecto, por ejemplo, especificando [assembly: AssemblyVersion("1.1.*")]
, El tercer número aumenta cada día y el cuarto número es el número de segundos desde la medianoche, dividido por dos (para desambiguar si hay más de una construye en un solo día).
Casi todos (incluyéndome a mí) parecen estar de acuerdo en que la revisión pertenece al tercer lugar, y la "compilación" o lo que quieras llamar pertenece al último.
Microsoft parece estar usando "compilación" como sinónimo de "día": tal vez eso esté relacionado con la idea de "compilaciones diarias"; y una "revisión" es, por lo tanto, otra versión de la compilación (diaria).
¿Por qué se define System.Version en .NET como Major.Minor.Build.Revision? Casi todos (incluyéndome a mí) parecen estar de acuerdo en que la revisión pertenece al tercer lugar, y la "compilación" o lo que quieras llamar pertenece al último.
¿Microsoft usa los números de esta manera casual, por ejemplo, 3.5.3858.2, o son los mismos nombres al revés? Por ejemplo, si tuviera que escribir su propia clase de versión con el orden Major.Minor.Build.Revision, ¿sería correcto intercambiar los dos últimos componentes al convertir a una System.Version, o lo ignora y pretende fingir los nombres están al revés?
Creo que la confusión viene de lo que la mayoría considera una "revisión" y lo que hace Microsoft :
Compilación: una diferencia en el número de compilación representa una recompilación de la misma fuente. Esto sería apropiado debido a cambios en el procesador, la plataforma o el compilador.
Revisión: los ensamblajes con el mismo nombre, los números de versión mayor y menor, pero las diferentes revisiones pretenden ser totalmente intercambiables. Esto sería apropiado para arreglar un agujero de seguridad en un ensamblaje previamente lanzado.
El ángulo de corrección de seguridad, probablemente mucho más común para ellos, parece ser una razón decente para tenerlo en el último lugar, ya que el cambio "más importante".
Me doy cuenta de que voy a llegar a la fiesta un poco tarde, pero quería compartir mi opinión sobre por qué el orden de construcción y revisión es "incorrecto". No es tanto que estén en el orden equivocado , sino que no están en ningún orden.
La versión de un ensamblaje, cuando se trata de él, es Major.Minor. Desde el enlace mencionado, Microsoft dice: "Las versiones subsiguientes de un ensamblaje que difieren solo por los números de compilación o de revisión se consideran actualizaciones de revisión de la versión anterior". [Mi énfasis]
El Build representa una recompilación de la misma fuente. La Revisión representa un cambio de código, pero es totalmente intercambiable con otras revisiones de la misma versión [Major.Minor]. Pero tampoco tiene prioridad sobre el otro.
Entonces, en resumen, no pienses en esto como:
+ Major
|
+-+ Minor
|
+-+ Build
|
+-+ Revision
Pero en lugar:
+ Major
|
+-+ Minor
|
+-+ Build
|
+-+ Revision
Respuesta tardía, pero creo que las otras respuestas podrían ampliarse un poco.
Los términos "compilación" y "revisión" son solo terminología de Microsoft. La clase System.Version no le importa de ninguna manera cómo los asigna.
En cuanto a cambiar el orden de las partes para que coincidan con su propia terminología, diría que básicamente debería ignorar las palabras por completo y, en su lugar, considerar lo que realmente define SystemVersion:
Un formato de cadena que puede analizar y generar:
major.minor[.build[.revision]]
Esto significa que si estás acostumbrado a tener tu propia versión formateada como xyzw, entonces deberías crear una instancia de la clase de Versión de esta manera:
new Version(x, y, z, w)
Cualquier otro orden de parámetros no coincidirá con lo que Parse () y ToString () harían. Si cambia z y w, entonces ToString () generará xywz, lo que sería confuso para todos si espera xyzw
Una comparación de versiones y orden de clasificación , por lo que las versiones se ordenan primero por mayor, luego por menor, luego compilación, luego revisión, como la mayoría de nosotros esperamos. Es decir, 1.2.5 es posterior a 1.2.3.7.
Entonces, si diseña su cadena de versión como 1.2.6.4 y quiere que se considere más reciente que 1.2.5.8, no cambie el orden de las partes en el constructor de la versión.
En resumen, si bien las palabras mayor / menor / compilación / revisión pueden dar una idea de qué número se debe aumentar considerando la cantidad de cambios, la terminología tiene un impacto muy pequeño en la forma en que se usa la clase. Formato y clasificación es lo que importa.