• Domingo 22 de Diciembre de 2024, 18:05

Autor Tema:  Diferencia Entre Setup.exe Y Miinstalador.msi  (Leído 3254 veces)

sergiotarrillo

  • Moderador
  • ******
  • Mensajes: 1059
    • Ver Perfil
    • http://sergiot2.com/blog
Diferencia Entre Setup.exe Y Miinstalador.msi
« en: Martes 10 de Enero de 2006, 19:54 »
0
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,


Sergio Tarrillo
Blog]miBlog[/url]

No me visiten!

Amilius

  • Miembro HIPER activo
  • ****
  • Mensajes: 665
    • Ver Perfil
Re: Diferencia Entre Setup.exe Y Miinstalador.msi
« Respuesta #1 en: Lunes 16 de Enero de 2006, 22:31 »
0
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

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Re: Diferencia Entre Setup.exe Y Miinstalador.msi
« Respuesta #2 en: Viernes 20 de Enero de 2006, 16:27 »
0
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

  • Moderador
  • ******
  • Mensajes: 1059
    • Ver Perfil
    • http://sergiot2.com/blog
Re: Diferencia Entre Setup.exe Y Miinstalador.msi
« Respuesta #3 en: Viernes 20 de Enero de 2006, 23:15 »
0
Citar
como un pinche grafico animado.  O verificaciones de prerequisitos demasiado complicados como para usar dlls hechas en C++

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

Saludos,


Sergio Tarrillo
Blog]miBlog[/url]

No me visiten!

Amilius

  • Miembro HIPER activo
  • ****
  • Mensajes: 665
    • Ver Perfil
Re: Diferencia Entre Setup.exe Y Miinstalador.msi
« Respuesta #4 en: Lunes 23 de Enero de 2006, 16:07 »
0
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.
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
  1.  
  2.  
  3. /*
  4.  * GDI32 Bitblt
  5.  */
  6.   public static class GDI
  7.   {
  8.     [System.Runtime.InteropServices.DllImport("gdi32.dll")]
  9.     internal static extern int BitBlt (
  10.       IntPtr hdcDest, int nXDest, int nYDest, int nWidth, int nHeight,
  11.       IntPtr hdcSrc, int nXSrc, int nYSrc, int dwRop);
  12.   }
  13.  
  14.  
  15. /*  (Does not work with HdcSrc by some reason) BITBLT.
  16.  */
  17.       IntPtr HdcDst = e.Graphics.GetHdc();
  18.       if (HdcDst != null)
  19.       {
  20.         IntPtr HdcSrc = RenderSurfaceCanvas.GetHdc();
  21.         if (HdcSrc != null)
  22.         {
  23.           //GDI.BitBlt(HdcDst, e.ClipRectangle.Left, e.ClipRectangle.Top, e.ClipRectangle.Width, e.ClipRectangle.Height, HdcSrc, 0, 0, 0xCC0020);
  24.           GDI.BitBlt(HdcDst, 0, 0, 50, 50, HdcSrc, 0, 0, 0x00CC0020);
  25.           //GDI.BitBlt(HdcDst, 10, 10, 260, 60, HdcSrc, 30, 100, 0xFF0062);
  26.           RenderSurfaceCanvas.ReleaseHdc(HdcSrc);
  27.         }
  28.         e.Graphics.ReleaseHdc(HdcDst);
  29.       }
  30.  
  31.  
  32.