CLR: .Net / Mono / Boo / Otros CLR > C#

 Diferencia Entre Setup.exe Y Miinstalador.msi

(1/1)

sergiotarrillo:
Hola a todos!

Como saben al generar un instalador usando los Proyectos de Instalación de Visual Studio genera estos dos archivos (auque en realidad genera 3): setup.exe y miInstalador.msi

 :o, ahora la pregunta del millon..cual es la diferencia de estos?, para que sirve cada uno de este archivo.

Saludos,

Amilius:
el .msi es la base de datos y puede instalarse sin el .exe

el .exe generalmente se usa para capturar parametros y pasarlos al .msi, esto si quieres efectos fuera de lo comun en tu instalador, como un pinche grafico animado. :P O verificaciones de prerequisitos demasiado complicados como para usar dlls hechas en C++

Jersson:
Holas
en realidad el setup.exe es el mismo para todos los proyectos de instalacion que puedas generar, este setup.exe es que ejecuta el msi (este en si es el que contiene el aplicativo que quieres instalar)
Ahora como sabe que msi ejecutar, pues lo lee del archivo "ini" que viene como resultado de tu proyecto de instalación.


Y claro, tal como dice Amilius, puedes ejecutar el msi sin necesidad del setup.exe, ahora, por mi parte he ejecutado cualquiera de los dos, y no he notado problemas, solo que el setup.exe es el que activa el msi, de alli, el resto de cosas como validaciones de requisitos (cosas como que te falte el framework, o similares...), las hace el msi.

Saluos
J.

sergiotarrillo:

--- Citar ---como un pinche grafico animado.  O verificaciones de prerequisitos demasiado complicados como para usar dlls hechas en C++
--- Fin de la cita ---

como hago lo del pinche gráfico?, tienes un ejemplo? :smartass:

Saludos,

Amilius:

--- Cita de: "Jersson" --- Holas
en realidad el setup.exe es el mismo para todos los proyectos de instalacion que puedas generar, este setup.exe es que ejecuta el msi (este en si es el que contiene el aplicativo que quieres instalar)
Ahora como sabe que msi ejecutar, pues lo lee del archivo "ini" que viene como resultado de tu proyecto de instalación.


Y claro, tal como dice Amilius, puedes ejecutar el msi sin necesidad del setup.exe, ahora, por mi parte he ejecutado cualquiera de los dos, y no he notado problemas, solo que el setup.exe es el que activa el msi, de alli, el resto de cosas como validaciones de requisitos (cosas como que te falte el framework, o similares...), las hace el msi.

Saluos
J.
--- Fin de la cita ---
las validaciones de requisitos las puedes hacer en el msi o en el setup, donde te sea mas comodo. El msi viene con varias opciones para validacion pero no siempre estan todas las que necesitas, al menos cuanto mas exigentes y especificos sean tus requerimientos. La ventaja de hacer las validaciones antes es para no tener limitaciones en cuando libertad de Interfaz grafica.

P.D. No tengo aun el ejemplo de animacion grafica, aun busco la forma de hacer un simple bitblt que funcione en csharp  <_< sin tener que usar sus metodos graficos "draw" que son demasiado lentos para lo que quiero hacer.  :(

Se supone que esto deberia funcionar, pero solo funciona para COPYMODE: BLACKNESS y WHITENESS.


--- Código: Text ---  /* * GDI32 Bitblt */  public static class GDI  {    [System.Runtime.InteropServices.DllImport(&#34;gdi32.dll&#34;)]    internal static extern int BitBlt (      IntPtr hdcDest, int nXDest, int nYDest, int nWidth, int nHeight,      IntPtr hdcSrc, int nXSrc, int nYSrc, int dwRop);  }  /*  (Does not work with HdcSrc by some reason) BITBLT. */       IntPtr HdcDst = e.Graphics.GetHdc();      if (HdcDst != null)      {        IntPtr HdcSrc = RenderSurfaceCanvas.GetHdc();        if (HdcSrc != null)        {          //GDI.BitBlt(HdcDst, e.ClipRectangle.Left, e.ClipRectangle.Top, e.ClipRectangle.Width, e.ClipRectangle.Height, HdcSrc, 0, 0, 0xCC0020);          GDI.BitBlt(HdcDst, 0, 0, 50, 50, HdcSrc, 0, 0, 0x00CC0020);          //GDI.BitBlt(HdcDst, 10, 10, 260, 60, HdcSrc, 30, 100, 0xFF0062);          RenderSurfaceCanvas.ReleaseHdc(HdcSrc);        }        e.Graphics.ReleaseHdc(HdcDst);      }   

Navegación

[0] Índice de Mensajes

Ir a la versión completa