I
como
Me gustaMakeMSI. (Hoy en día prefiero WiX, que es un poco más fácil de manejar una vez que lo averigua, tiene una mejor salida y tampoco depende de Visual Studio.)
Responda la respuesta original.
MAKEMSI el mundo tiene una curva de aprendizaje empinada, sensación general de MAKEMSI no es muy profesional, pero resultó para dar buenos resultados, además de que no parece depender de Visual Studio para nada.
He aquí un ejemplo de la que acaba de construir un .msi (modificado para eliminar la marca):
gamename.mm:
#define? UISAMPLE_DIALOG_FILE_dlgbmp LeftSide.bmp ;;My replacement graphic for the left hand side (vertical) bitmap
#define? UISAMPLE_LEFTSIDE_TEXT ;;Disable "left side text"
#define? UISAMPLE_BITMAP_WHITE_BANNER PrettyBanner.bmp ;;Use "white.bmp" if you just want it plain
#define? UISAMPLE_BITMAP_BANNER_GRAPHIC gamename.bmp ;;The graphic on the right of the "UISAMPLE_BITMAP_WHITE_BANNER"
#define? COMPANY_PRODUCT_ICON ..\gamename.ico ;;Add-Remove (control panel) icon
#define? COMPANY_NAME Company Name
#define? DEPT_ARP_URL_PUBLISHER http://www.example.com/
#define? DEPT_ARP_URL_TECHNICAL_SUPPORT http://www.example.com/support
#define? DEPT_NAME Company Name
#define? DEPT_ADDRESS [email protected]
#define? COMPANY_CONTACT_NAME <$DEPT_NAME>
#define? COMPANY_CONTACT_NAME_PHONE ;;No phone
#define? COMPANY_SUMMARY_SCHEMA 110 ;;Minimum v1.1 Installer
#define? COMPANY_SUMMARY_AUTHOR <$DEPT_NAME>
#define? UISAMPLE_LEFTSIDE_TEXT_FONT_COLOR &HFFFFFF ;;White in BGR (believe it or not...)
#define? DBG_ALL N ;;Do not Add MAKEMSI debugging to "console file"
;--- Include MAKEMSI support (with customisations and MSI branding) ------
#define VER_FILENAME.VER gamename.ver ;;ver filename
#include "ME.MMH"
; #define MSI_SUMMARY_MSI_NAME_TITLE Blah
;--- Want to debug (not common) ---------------------------------------------
;#debug on
;#Option DebugLevel=^NONE, +OpSys^
;--- add files --------
#define SourceRootDir ..\bin\win32_dist
; <$MAKEMSI_MM_BASENAME>: filename of this mm, e.g. "gamename.mm"
<$DirectoryTree Key="INSTALLDIR" Dir="c:\program files\Game Name" CHANGE="\" PrimaryFolder="Game Name">
<$Files "<$SourceRootDir>\*.*" DestDir="[INSTALLDIR]\" SubDir="TREE">
<$Files "<$SourceRootDir>\data\*.*" DestDir="[INSTALLDIR]\data" SubDir="TREE">
<$Files "<$SourceRootDir>\Microsoft.VC90.CRT\*.*" DestDir="[INSTALLDIR]\Microsoft.VC90.CRT" SubDir="TREE">
<$DirectoryTree Key="MY_SHORTCUT_FOLDER" Dir="[ProgramMenuFolder]\Game Name" MAKE="Y" REMOVE="Y">
<$Shortcut Dir="MY_SHORTCUT_FOLDER" Target="[INSTALLDIR]\gamename.exe" Title="Game Name" Description=^Launch Game Name^ Arguments=^""^ WorkDir="INSTALLDIR" >
gamename.ver:
; ProductName = Game Name
; DESCRIPTION = Game Name
; Licence = gamename.rtf
; Installed = WINDOWS_ALL
; Guid.UpgradeCode = {DEADBEEF-DEAD-BEEF-DEAD-BEEFDEADBEEF} ; <=== GENERATE THIS
; MsiName = gamename
; repeat this as a changelog
;############################################################################
VERSION : 1.2.2
DATE : 11 May 2011
CHANGES : Initial build.
:
También necesita t o Alimentación:
- LeftSide.bmp - 503x314 (vacío excepto por la izquierda 160x314)
- PrettyBanner.bmp - 500x60
- gamename.bmp - 48x48
archivos a distribuir se especifican con, por ejemplo:
<$Files "<$SourceRootDir>\*.*" DestDir="[INSTALLDIR]\" SubDir="TREE">
Construya el MSI haciendo clic derecho en .mm y eligiendo el elemento correcto.
Sí, hay una curva de aprendizaje, y puede ser frustrante, pero vale la pena. VS2010 no incluirá WiX (http://robmensching.com/blog/posts/2009/4/1/Visual-Studio-will-not-ship-the-WiX-toolset-contributes-only), que es un vergüenza. Pero, por supuesto, todavía es compatible con wixproj. – si618
msitools tiene una herramienta simple similar a wix. https://live.gnome.org/msitools – elmarco
WiX también hace un buen trabajo al hacer referencias cruzadas específicas de los elementos apropiados en la documentación de MSI en su propia documentación (referencia de esquema wix), esto ayuda a aclarar los significados en ambos mundos. – Wolf