(13)
Artikel
bewerten
(66% positiv)
(25)

schnell mal ein msi-Paket selbst gebaut:

in diesem Beispiel zeigen wir anhand von makemsi und einem sehr einfachen Beispiel,
wie schnell und ohne Vorkenntnisse ein msi Paket erstellt werden kann.

Unser einfaches Beispiel kann dann folgendes:
- Files kopieren (dll und ocx Dateien , falls vorhanden, werden automatisch registriert)
- Registrierungseinträge anlegen
- eine Batchdatei starten (aus dem msi-Paket heraus)

1) Voraussetztung: Makemsi downloaden und installieren:  Download Makemsi 

2) unser Beispiel runterladen und anpassen:   
simple_example_files_for_makemsi.zip Größe:(11.45 kB): Download .
das Beispiel ist folgendermaßen aufgebaut:

    Download
Dateien und Ordner im Ordner Desktop werden auf den Desktop kopiert,
Dateien und Ordner im Ordner Programme unter Programme,
Start Menu ins Start Menü
und Temp in einen temporären Ordner

in unserem Beispiel kopieren wir eine Batch-Datei in den temporären Ordner und führen diese am Ende der Installation aus.

unser Beispiel Script

hier das Beispiel, in rot gehaltene Zeilen müssen wir anfangs nicht anpassen,
interessant fürs erste ist der Teil:"what should the installation do?":
dieser kann angepasst, ergänzt oder Teile weggenommen werden.
Nach der Eingewöhnungsphase, kann dann auch der rote Teil betrachtet werden, soll uns aber momentan nicht vom wesentlichen ablenken.

;----------------------------------------------------------------------------
;--- Global Definitions         -----
;----------------------------------------------------------------------------
#define VALID_MSIVAL2_DIR C:\Programme\MsiVal2  ;;Used before loading MSI header
;--- Include MAKEMSI support (with my customisations and MSI branding) ------
#define VER_FILENAME.VER  version.Ver      ;;I only want one VER file for all samples! (this line not actually required in "tryme.mm")
#include "ME.MMH"
;;;; Disabling Dialog??
;--- Prevent "UISAMPLE" trying to manipulate the dialog deleted below -------
#define UISAMPLE_DISABLE_TYPICAL_SETUP N
#define REMOVED_LicenseAgreementDlg N
#define "ME.MMH"

;--- Remove the dialog ------------------------------------------------------
<$DialogRemove "SetupTypeDlg"> ;; do not ask for Typical Custom complete
<$DialogRemove "LicenseAgreementDlg"> ;;ignore lizenz.rtf File
;----------------------------------------------------------------------------

;--- Want to debug (not common) ---------------------------------------------
;#debug on
;#Option DebugLevel=^NONE, +OpSys^
;--- Define default location where file should install and add files --------

;Installdir:
<$DirectoryTree Key="INSTALLDIR" Dir="c:\Progra~1" CHANGE="\" PrimaryFolder="Y">
;----------------------------------------------------------------------------
;--- what should the installation do? -----
;----------------------------------------------------------------------------

;Example for Filecopy:
<$Files "files\Programme\*.*" SubDir="TREE" DestDir="INSTALLDIR">
<$Files "files\Desktop\*.*" DestDir="[DesktopFolder]">
<$Files "files\Start Menu\*.*" SubDir="TREE" DestDir="[ProgramMenuFolder]">
<$Files "files\temp\*.*" DestDir="[TempFolder]">

;----------------------------------------------------------------------------
;--- Add a registry entry (let it create a component - GUID not fixed!) -----
;----------------------------------------------------------------------------
<$Registry HKEY="LOCAL_MACHINE" Key="SOFTWARE\testkey" Value="testkey_script_example.com">

;----------------------------------------------------------------------------
;--- start a batch script                 -----
;----------------------------------------------------------------------------
#(
    ;--- Run after install, ignore return code and don't wait for completion ---
   <$ExeCa
             EXE='[TempFolder]testtemp.cmd' Args=^"MsgBox Title" "MsgBox text..."^
         WorkDir="TempFolder"
             SEQ="InstallFinalize-"   Type="immediate ASync AnyRc"
      Condition="<$CONDITION_INSTALL_ONLY>"
   >
#)


Wichtig:
mit dem durch makemsi installierten Tool "GUID Generation" muss für jedes Installationspaket eine eigene GUID generiert und im File: "version.ver" eingetragen werden, da ansonsten beim Setup ein Paket das andere deinstalliert (gleiche GUID)


nach erfolgreichem Anpassen des Skriptes kann die MSI-Datei generiert werden,
dazu ein Rechtsklick auf "installscript.mm" und "Build MSI - Development" (das msi-File wird dann in dem Ordner "out" abgelegt)    Download
  weitere Beispiele sind im Setup abgelegt: "C:\Programme\MakeMsi\Samples\TryMe";
Für eine detaillierte Beschreibung die Hilfe zu Makemsi ansehen (wird mitinstalliert),
oder Online:  Makemsi Manual 
link zum Hersteller  dennisbareis.com/makemsi.htm
Download:  Download Makemsi- free msi

letzte Änderung dieses Artikels: 10.02.2016 19:05




Kommentare