2011-06-26 66 views
7

He estado versionando recientemente mi producto (exe) y aumentando el número de compilación cada vez en assemblyinfo.cs..net: ¿Números de versión para DLL frente a EXE?

Funciona muy bien, mi producto se encuentra actualmente en la versión 1.5.x.x así que aumente los 4 dígitos cada vez que tenga una compilación exitosa.

Ahora tengo mis DLL que también son parte de mi aplicación.

¿Qué le sugiere a alguien cómo versionar estos? ¿Debería versionarlos de la misma manera que mi exe, es decir, 1.5.x.x o debería crear otro número de versión diferente?

Aquí es donde actualmente estoy un poco confundido.

CUANDO MI PRODUCTO ES MAYOR EN FUNCIONALIDAD, PUEDO ELEVAR 1.5 A 2.0, PERO ¿DONDE DEJA ESTO MI Dll?

Algún consejo sobre versiones sería apreciada con gratitud

gracias

Respuesta

2

Probablemente obtendrá múltiples opiniones, pero yo diría que las cosas se simplifiquen y que la versión EXEs y las DLL permanezcan sincronizadas. Podría cambiar mi opinión si realmente desea lanzar versiones de los archivos DLL y EXEs de forma independiente, pero no menciona eso como un requisito. Tomaría este enfoque si está tratando algunos de sus archivos como componentes de terceros (que se lanzan en un horario diferente al producto principal). Pero, de nuevo, si no tiene este requisito, le diría que mantenga todas las versiones de archivo sincronizadas.

La convención que he visto funcionar bien es utilizar los primeros 3 números para representar la versión del producto (mayor/menor, etc.) y la 4ª parte del número de versión representa la versión de control de fuente (para saber exactamente los archivos fuente de los que proviene el binario).

Espero que ayude,

John

1

En mi opinión sólo uno AssemblyInfo archivo que se comparte a través de la aplicación debe tener. De esa forma es fácil de mantener. Y, por supuesto, implica que tiene una única versión para todas sus asambleas, que es la norma aceptable para mí. consulte this.

+3

Depende de si las DLL son una parte integral de la aplicación, o un proyecto en sí mismo. Actualmente estoy trabajando en una aplicación que tiene una DLL de biblioteca que se puede usar en otros proyectos. La biblioteca DLL tiene su propia información de ensamblaje y no garantizamos que su número de versión coincida con el número de versión de cada otro proyecto en el que se usa. –

+1

@Robert Harvey, sí, por supuesto. Si el dll no es una parte integral de la aplicación, entonces no puede hacer que use el conjunto de información compartido. Pero en esta pregunta en particular parece que el dll es una parte de la aplicación. – Illuminati

1

En mi opinión lo que tiene que gestionar sus versiones separadas.

Porque 2 aplicaciones (EXE) pueden usar la misma DLL. ¿Qué versión será la DLL?

La versión de la DLL debe ser independiente del EXE que la ejecuta.

0

Mírelo desde el otro lado: ¿por qué NECESITA los números de versión? Por ejemplo, una respuesta a eso puede ser saber qué se implementa en la ubicación de algunos clientes.

Por lo tanto, si tiene una aplicación que está implementada como exe principal y algunas dlls, y esta dlls NO es parte de ninguna otra aplicación, puede sentirse seguro incluso si olvida completamente el control de versiones dll.

De lo contrario, si los dlls serán parte de proyectos múltiples, aumente su versión a CUALQUIER esquema que le parezca lógico, por ejemplo, aumente MINOR 1.X.0.0 cuando agregue alguna funcionalidad o cambie algo bastante grande, aumente MAYOR si tienes clases completamente diferentes dentro, ...

En cuanto al incremento MAYOR debido a la funcionalidad, es decir, por supuesto, una vez más el gusto personal, yo le aconsejaría que hay algo así como:

  • aumento menor si se añade funcionalidad, y algunos hito se alcanza
  • aumente MAYOR si cambia los paradigmas de la interfaz de usuario, que sugieren que realizó un importante rediseño o reescritura.

también: Version Syntax Explanation?

0

de haber tocado en un muy gran tema, que realmente puede conseguir tan complicado como lo permitirá.

En última instancia, el enfoque de control de versiones que elija dependerá de lo que necesite lograr y de cuánto tiempo tenga que dedicar a su mantenimiento. Los dos están directamente relacionados.

Los dos objetivos principales del control de versiones, es la ejecución lado a lado y el seguimiento. Side-by-side (SxS) está permitiendo que se ejecuten varias versiones de la misma DLL dentro de la misma aplicación. Sin el cambio de un número de versión de ensamblaje, esto no es posible. El seguimiento es simplemente poder determinar la instantánea de código exacta que se ejecuta en una máquina de clientes. Ambos se pueden lograr cambiando la versión de ensamblaje, pero la primera se puede lograr solo cambiando la versión de ensamblaje.

Muchos le recomendarán que comparta los números de versión en todas las DLL/EXEs: esta es una buena manera de hacerlo, ya que es el enfoque más simple, también logra la menor flexibilidad de implementación.

Por ejemplo, si está utilizando cualquier forma de abstracción de contrato (definiendo dependencias entre DLL a través de interfaces en lugar de tipos concretos), puede dividir su aplicación en múltiples 'silos de control de versiones'. Un ejemplo de esto sería el cliente y el servidor, donde la interdependencia, si se define en un tercer conjunto, sus contratos de WCF. Si todas las versiones están por separado, puede lanzar una nueva versión del servidor (siempre que cumpla con el mismo contrato), sin afectar al cliente. Y viceversa.

Como puede ver, aumentará la granularidad de su versión a medida que crezca su demanda, pero se escuchará por casualidad.

Lo mejor que puede hacer es exactamente lo que está haciendo, siéntese y planifique sus necesidades, luego planifique sus límites de control de versiones (qué componentes pueden separarse mediante contratos).

Lo siguiente depende del tamaño de su departamento de pruebas, pero también le recomiendo que considere que la versión del archivo refleje (al menos en parte) el número de compilación/fecha. Solo aumentará la versión de ensamblaje una vez por versión de cliente, pero debe tener una versión de archivo diferente para cada colección de DLL que surja de la compilación. Esto se debe a que cuando realiza una prueba y detecta un problema, al tener estas DLL identificables de forma única, se eliminará cualquier duda sobre la creación exacta de la DLL.

0

La respuesta simple es aumentar los números de versión a medida que realiza cambios. No mantenga la EXE y la DLL sincronizadas porque no hay ninguna razón para que lo sean. La DLL está destinada a ser portátil; cualquier EXE podría usarla teóricamente. Si ya tiene un número de versión para el archivo DLL, utilícelo como su línea base actual y cuando lo modifique, aumente el número de versión según sea necesario.

Cuestiones relacionadas