Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

automatische Paketerstellung


1 reply to this topic

Ilja

Ilja
  • Members
  • 1 posts

Posted 11 August 2004 - 16:11

Hallo

Ich möchte automatisiert ein msi-file mittels Installshield X über's automation interface bilden. Dabei gebe ich einer XML-Datei Informationen/Optionen mit, die dann bei der Erstellung ausgelesen werden. Ist das machbar ?

Falls ja, welche folgenden Funktionalitäten kann ich dem xml-File mitgeben ?

Deregistrieren der Dateien
De-/ Registrieren zusätzlicher Registry-Einträge
Löschen der alten Dateien
Installieren der neuen Dateien Registrieren der neuen Dateien
Komplette Deinstallation des Paketes. Registry-Einträge (auch die, die erst beim Arbeiten mit dem installierten Programm entstehen) und Dateien müssen deregistriert und gelöscht werden, sofern diese nicht noch von dritten Programmen benötigt werden.
Möglichkeiten des Environizings eines msi-Packages (auf verschiedenen Plattformen, z.B. Server, Client sollen bestimmte Dateien abgelegt/registriert werden)
Einträge für die Registry sollen vorgeben werden (Verzeichnis, Wert, Name)
Installation von Diensten
Installation einer SQL-Server Datenbank
Update einer SQL-Server Datenbank
Installation/Update eines Webs im IIS
Verzeichnisse/Verzeichnisbaum anlegen
Überprüfung, ob andere vom Produkt benötigte Produkte oder Komponenten in mindestens der benötigten Version bereits installiert sind
Installation von weiteren msi-Paketen aus der Ausführung des aktuellen msi-Paketes heraus, wenn dieses nur für das gerade installierte Produkt benötigt wird (z.B. True dbGrid)
Möglichkeit des Upgrade (in Ergänzung zu oben gehört dazu auch das gezielte Löschen oder Upgraden von User-Dateien, die während des Programmbetriebes entstanden sind)
Ausführung von beliebigen Programmen aus dem Installationsprogramm heraus, falls für Installationsprozess benötigt (z.B. Starten eines SQL-Loaders zur Ausführung von SQL-Skripten).
Erweiterbarkeit, d.h. Hinzufügen von selbst geschriebenen DLLs zu Installationsprogramm (insbesondere für Anforderungen von selbst definierten Benutzereingaben während des Installationsprozesses wie z.B. Überprüfungsroutine für eingegebene Seriennummer oder Abfrage zu einer bestimmte Voreinstellung der Userkonfiguration)
Installation im silent mode (ohne Usereingabe)
Automatische Erstellung von Logfiles zur Verifikation einer erfolgreichen Installation.
Debugging-Möglichkeit des Installationsprogramme
Konfigurationsmöglichkeit, was passieren soll, wenn eine Komponente gleichen Names in einer anderen Version oder in gleicher Version, aber unterschiedlicher Sprache bereits installiert ist.
Nachinstallation von Programmteilen (aus dem gleichen Paket), die bei einer benutzerdefinierten Erstinstallation ggf. noch nicht installiert wurden.
Entzippen von Dateien
Befehlsdateien und Programme (z.b. setup.exe) ausführen
Setzen von Umgebungsvariablen
Verknüpfungen auf Desktop/Startmenü anlegen

Ich hoffe, ich hab mit den Funktionen niemanden erschlagen.
Weiß jemand Rat ?
Gibt's irgendwo 'ne Doku zu dieser Thematik ?

Gruß Ilja

Edited by Ilja, 11 August 2004 - 16:12.


sven

sven
  • Members
  • 15 posts

Posted 13 August 2004 - 06:23

hallo,

grundsätzlich kannst du über das interfaces alles machen, was du auch per hand machen würdest.
allerdings bietet installshield nicht alle möglichkeiten für die automatisierung an.
für grundlegende angelegenheiten (installation, registrierung, transformation, verknüpfungen, ...) ist das "automation interface" - unter diesem stichpunkt findest du auch die hilfe von installshield - gut geeignet (ist aber recht langsam), daher schlage ich vor, daß du dir ein eigens binary (c/c++) schreibst (scripte sind in meinen augen der letzte ... ) und dir ein msi-paket über das msi-objectmodel erstellst (infos im ms-sdk), da durch klassen ja die xml-unterstützung schnell entwickelt werden kann.

ich hoffe du kannst damit was anfangen.