Tengo un MSI basado en WiX que instala un puñado de controladores de dispositivos y, por lo tanto, tengo una versión x64 y una x86. El paquete también tiene una dependencia de .NET 3.5, así que estoy generando un programa de arranque para hacer esto y luego iniciar el MSI. Mi pregunta es si alguien conoce una forma de crear un programa de arranque que detecte la plataforma en la que se ejecuta y ejecute el MSI apropiado. Busqué en Google esa solución y hasta ahora no he encontrado nada. ¡Gracias!Ejecutar MSI x86 o x64 desde MSBuild bootstrapper
Respuesta
Si está instalando .Net antes de iniciar su msi, también puede incluir un exe escrito en C# que detecta su plataforma y luego le devuelve la respuesta a su programa de arranque.
Utilicé un archivo ejecutable que detectó la plataforma, creé una clave de registro que estaba verificando para decidir qué lanzar.
dotNetInstaller es probablemente lo que es necesario utilizar: se pueden crear diferentes configuraciones de "configuración" que sólo se activa si se cumple la combinación correcta de sistema operativo, plataforma y lenguaje. También puede incrustar cualquier MSI, requisitos previos, etc. en el archivo ejecutable de instalación para que los usuarios solo tengan un solo archivo para descargar/ejecutar.
Desafortunadamente, Windows Installer requiere un paquete MSI separado para x86 y x64.
Con WiX v3.6 + Burn proporciona la funcionalidad para "agrupar" los dos paquetes en una sola instalación (impulsada por el ejecutable Burn). Se podía hacerlo con un archivo .wxs que haría algo un poco como:
<Bundle ...>
<BootstrapperApplicationRef Id='WixStandardBootstrapperApplication.RtfLicense' />
<Chain>
<MsiPackage InstallCondition='NOT VersionNT64' SourceFile='path\to\x86.msi' />
<MsiPackage InstallCondition='VersionNT64' SourceFile='path\to\x64.msi' />
</Chain>
</Bundle>
eso es sólo empezando a arañar la superficie de todo lo que la quemadura puede hacer, pero muestra cómo sujetar los dos paquetes de arquitectura en una sola instalación experiencia.
- 1. encadenado msi/Bootstrapper/prerrequisito?
- 2. Cargando ensamble x86 o x64
- 3. Acceso COM x86 desde x64 .NET
- 4. ¿Puedo ejecutar Visual Studio 2008 x86 en Windows Vista x64?
- 5. Problema con clickonce bootstrapper y msbuild
- 6. Compilación para x86 y x64
- 7. ¿Puedo instalar Windbg x86/x64 en mi x64 WIN7?
- 8. Visual Studio cargando el dll derecho (x86 o x64)!
- 9. HOWTO y la mejor instalación de trabajo (MSI) chainer +/bootstrapper
- 10. ejecutar un destino personalizado msbuild desde VisualStudio
- 11. x86 Servicio de depurador remoto en x64
- 12. ¿Los chips x86/x64 todavía usan microprogramación?
- 13. Cómo ejecutar nunit con msbuild desde VS2010
- 14. ¿Cómo puedo hacer que mi instalador VS2008 x86 instale ensamblajes x64 en x64?
- 15. Operador Mod (%) en x86 vs x64
- 16. Usando x64 dll en la aplicación x86
- 17. PresentationCore y WindowsBase dlls en ambos entornos x64 y x86
- 18. ¿Es posible ejecutar el ensamblaje x86 en un sistema operativo x64?
- 19. ¿Es posible ejecutar una secuencia de ensamblaje x86 desde C#?
- 20. ¿Compila ambos x86 y x64 en una configuración?
- 21. cómo saber qué CPU usar en compilación (x86 x64 o AnyCpu)?
- 22. MSBuild: Error de TlbImp desde actualizar a VS 2010
- 23. ¿Cómo ejecutar MSBuild desde Powershell sin generar el proceso msbuild.exe?
- 24. TypeLoadException en x64, pero está bien en x86 con structlayouts
- 25. MSI no se ejecuta desde C#
- 26. MSI o Install Shield
- 27. Ventajas de usar MSBuild o NAnt versus ejecutar DevEnv.exe desde la línea de comandos
- 28. C#, MSBuild Bootstrapper con wix, cómo descargar .net framework 3.5 SP1?
- 29. Entity Framework gira mucho más lento en x64 vs x86
- 30. Diferencias de TVarData entre x86 y x64 Delphi
Bueno, una vez leí que las MSI son específicas de la plataforma por diseño – zvolkov
Correcto, por lo que hay dos MSI separadas. Sin embargo, digamos que estoy distribuyendo esto en un CD y tengo un autorun.inf que inicia mi bootstrapper de "setup.exe". Actualmente solo puedo señalarlo a un .msi para ser lanzado por el programa de arranque una vez que ha terminado de establecerse prereqs – MattB