Pregunta

Por lo tanto, aquí está la situación aquí.

Tengo 2 sitios web ASP.NET + winform algunas aplicaciones que se instalan con una instalación. Todos ellos están representados como módulos de combinación en el proyecto de instalación.

En la actualidad, cuando queremos actualizar la versión global de la aplicación hay que actualizar todas las versiones en sitios web de ASP.NET y esas cosas. Sé que es posible detectar la versión en la información de montaje de una aplicación asp.net, que es bastante fácil. La dificultad aquí es detectar la versión de configuración "global". (Dice aquí la página web es la versión 1.5, pero la propia configuración global es la versión 3.4).

En algún momento supongo que si puedo localizar el archivo setup.exe / setup.msi pude navegar por ella con la reflexión, pero no es exactamente la mejor solución. Almacenamos cada instalación según la versión en el servidor en una carpeta separada (por ejemplo c:. \ Configuraciones \ Producto 1.0 \ Setup.exe, c: \ Setup \ Producto 1,5 \ Setup.exe, etc ..)

¿Alguna sugerencia?

¿Fue útil?

Solución

Definir versión "global" de configuración. ¿Quiere decir que cada parche actualiza algunos pero no todos los montajes, y por lo tanto la versión de cualquiera montaje, o incluso cualquiera de los conjuntos en absoluto, no siempre son representativas instalado el último parche?

3 opciones:

  • Mantenga la información de la versión global en cada archivo de configuración y empujar a cabo cambios a cada configuración de cada componente instalado cada vez (no se recomienda).
  • Proporcionar un archivo de configuración compartida, o referencias de otras configuraciones a una configuración "principal", que se puede hacer referencia a cualquiera de los proyectos ejecutables, y asegúrese de que config se actualiza cada vez.
  • Mantener una clave de registro que contiene la versión global del paquete de software.

De los tres, yo escogería el último, ya que la instalación de parches y se extiende sobre varias áreas del sistema, pero cada área debe ser capaz de leer una clave de registro de software (si no actualizarlo). El proceso no es difícil; se puede hacer referencia al objeto System.Win32.Registry estática para obtener las claves de base para LocalMachine, CurrentUser, etc., y desde allí se puede recorrer el árbol navegando a través de objetos RegistryKey (o crear uno desde cero con la ruta de la clave). Se puede especificar la ruta de la clave con un AppSetting en los diversos archivos de la tela y app.config; esto no debe cambiar con tanta frecuencia como el valor de la clave.

Otros consejos

Si va a instalar varios paquetes de un MSI, entonces lo mejor es dejar que el MSI se enumeran en ARP y luego la versión de este "configuración global" también estará disponible para el futuro de MSI. Sin saber que la tecnología que está utilizando para crear su instalación es difícil dar consejos más sólida, pero en WiX (Windows Installer XML) sólo tiene que incluir un elemento de actualización que se hará cargo de esto para usted automáticamente. La mayoría de las tecnologías deberían tener alguna manera para que usted compruebe la instalación actual versión.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top