ich baue aktuell an einem neuen Template welches einfacher nutzbar sein soll als das original.
Ziel soll es sein das man Werte nicht wie bisher doppelt eintragen muss (wie z.B. der Produktname)
Außerdem soll man im Idealfall nur noch eine Datei anpassen müssen, so das man an dem Grundgerüst möglichst wenig ändern muss.
Das Paket besteht dann aus diesen Dateien. Davon muss nur noch die config.opsiinc geändert werden. Alle anderen bleiben wie sie sind.
Werden jedoch zusätzliche Sektionen gebraucht kann man diese übersichtlich in den additional_* dateien unterbringen. Die Aktionen werden dann nach der letzten Standardsektion oder vor der ersten Standardsektion eingefügt.
setup.ins
uninstall.ins
delsub.ins
neu: config.opsiinc - konfigurations Datei
neu: additional_preactions.opsiinc zusätzliche Aktionen vor den standard Aktionen (für registry sektionen, file Sektionen ....)
neu: additional_postactions.opsiinc zusätzliche Aktionen nach den standard Aktionen (für registry sektionen, file Sektionen ....)
neu: additional_sections.opsiinc (für die im additional_actions.opsiinc angelegten sektionen)
Normal sollte es ausreichen die config.opsiinc zu bearbeiten. Nur wenn noch anpassungen notwendig sind muss man zusätzlich Hand anlegen.
Aktuell schaut diese config.opsiinc bei mir so aus:
Code: Alles auswählen
; ----------------------------------------------------------------
; - edit the following values -
; ----------------------------------------------------------------
;$ProductId$ should be the name of the product in opsi
; therefore please: only lower letters, no umlauts,
; no white space use '-' as a seperator
Set $ProductId$ = "ProductName"
Set $MinimumSpace$ = "100 MB"
set $setupcommand32$ = "msiexec /i %ScriptPath%\files\jre7_x86.msi /passive /t %ScriptPath%\files\x86_FF_IE.mst"
set $setupcommand64$ = "msiexec /i %ScriptPath%\files\jre7_x86.msi /passive /t %ScriptPath%\files\x86_FF_IE.mst"
Set $INST_SystemType$ = GetSystemType
set $INST_architecture$ = GetProductProperty("install_architecture","system specific")
Set $LogDir$ = "%SystemDrive%\tmp"
; ----------------------------------------------------------------
; - Currently installed MSIIDs / Aktuelle MSIID der MSI aus diesem Paket
; ----------------------------------------------------------------
set $installed_MSI_32$ = createStringList (' ') /Für 32 Bit
set $installed_MSI_64$ = createStringList (' ') /Für 64 Bit
set $installed_MSI_Both$ = createStringList (' ') /Wenn die MSIID bei 32+64 bit identisch ist
; ----------------------------------------------------------------
; - MSIIDs from outdated packages / Alte MSIIDs von vorhergehenden Paketen
; ----------------------------------------------------------------
set $MSI_32$ = createStringList (' ') /Für 32 Bit
set $MSI_64$ = createStringList (' ') /Für 64 Bit
set $MSI_Both$ = createStringList ('{26A24AE4-039D-4CA4-87B4-2F83217021FF}', '{xxxx-xxxx-xxx-xxx}') /Wenn die MSIID bei 32+64 bit identisch ist
- Anpassung von nur noch einer Script datei notwendig (Im Normalfall)
- Es können mehrere MSIs angegeben werden bei der Deinstallation (MSIIDhistory: Wichtig wenn sich die MSIID bei einem Versionssprung geändert hat)
- Trotz dem flexibel durch additional sektionen/aktionen
Das Template ist aktuell erstmal nur für MSIs gedacht.
Ich werde aber auch ein Universaltemplate bauen welches für andere Installer geeignet ist und evtl. auch ein mixed Template.
Am Ende sollen Templates stehen, die ein absoluter Anfänger einfach und zuverlässig nutzen kann - ohne sich über die Funktion dieser Scripte einen Kopf machen zu müssen.
Mir ist klar das es nicht für alle Programme nutzbar sein wird, da es immer Installerkonstrukte geben wird die sich nicht über ein Standardtemplate abbilden lassen. Aber für einfache Programme sind Templates eine echte Arbeitserleichterung. Vor allem wenn man diese Updaten will...
Ich muss noch ein wenig schrauben - und dann veröffentliche ich das im WIKI.
Meine Frage nun an euch:
Was haltet ihr davon?
Was ist für euch an diese Stelle wichtig?
Was darf auf keinen Fall fehlen?
Gruß
Tobias