Child-Setup erstellen
Posted 07 December 2005 - 17:35
ich versuche gerade ein Setup zu erstellen in den andere Sub-Setups eingebunden werden. Da einige Sub-Setup Dateien mehrere MB groß sind, möchte ich sie nicht auf das Zielrechner kopieren sonder direkt vom CD nacheinander starten. Mit benutzer definierten Aktionen klappt es, aber nur wenn ich die Sub-Setups in die binäre Tabelle aufnehme.
Wie kann ich die einzelnen Sub-Setup Dateien, die ich zukünftig in einem bestimten Verzeichnis (z.B.: ...\Setups) auf dem CD packe, direkt von dem CD starten, ohne auf das Zielrechner zu kopieren.
Gruß Jarpo
Posted 07 December 2005 - 17:55
"Starten einer ausführbaren Datei"
schau mal in den Assistenten für Benutzerdefinierte Aktionen.
Posted 08 December 2005 - 11:42
1. Typ: "Starten einer ausführbaren Datei"
2. Verz.: In Binärtabelle gespeichert
3. Quelle: mit durchsuchen Datei setup1.exe (150 MB) ausgewählt
4. Ziel: leer
5. Warten bis ende der Aktion
6. Sofortige Ausführung
7 Immer ausführen
8. Installationsoberflächensequenz: erste Aktion
9. Installationsoberflächenbedingung: Not Installed And (Not PATCH Or IS_MAJOR_UPGRADE)
entsprechend führe ich für weitere 2 Setup durch:
...
setup2.exe (100 MB)
...
8. Installationsoberflächensequenz: nach setup1
9. Installationsoberflächenbedingung: Not Installed And (Not PATCH Or IS_MAJOR_UPGRADE)
...
setup3.exe (50 MB)
...
8. Installationsoberflächensequenz: nach setup2
9. Installationsoberflächenbedingung: Not Installed And (Not PATCH Or IS_MAJOR_UPGRADE)
das Problem dass die Release-Erstellung dauert eine weile. Danach entsteht eine Setup-Datei ca. 420 MB. Dazu werden auch die originalen Setup-Dateien auch getrennt im Disk1 Verzeichnis abgespeichert. Während der Installation dauert der Entpackungsprozess wieder eine weile(Geduldprobe).
Main Ziel war eigentlich etwas anderes:
Es soll am Ende eine kleine Setup-Datei entstehen von den aus die einzelne Sub-Setups gestartet werden können. Dabei wäre ich in der Lage die Sub-Setup Files immer problemlos auszuwechseln, ohne den gesamten Setup zu beeinflussen.
Welche Installationsoberflächensequenz wäre für dieses Konzept das geeignete?
Posted 08 December 2005 - 14:06
Du könntest dir ein der Eigenschaftstabelle eine Property anlegen.
Diese Property setzt du dann über eine Custom Action auf den Pfad wo deine Installationspakete zu finden sind.
Dann erstellst du noch eine CA mit dem Werten "Starten einer ausführbaren Datei" und "In Eigenschaftstabelle gespeichert".
Diese fügst du dann der Reihe nach in die Sequenzen ein.
Aber noch eins: Ich selbst habe mit Child Setups keine guten Erfahrungen gemacht. Gerade was das deinstallieren über ein Haupsetup angeht. Hier solltest du gut testen und wissen das sich Probleme über mehrere Release strecken können. Ich weiss das es oftmals nicht anders geht, aber IS könnte sich da wirklich mal was einfallen lassen.
Posted 08 December 2005 - 16:02
das mit der Eigenschaftstabelle klappt so weit gut, aber nur auf Entwicklungsrechner. Wenn ich das Paket verteile funktioniert nicht mehr, da die Verweise auf das Sub-Setup nicht mehr stimmen.
Wie kann ich einnen Relativpfad zu den Hauptdate definieren, so das die Sub-Setupdateien, die in Unterverzeichnis abgespeichert wurden, immer gefunden werden. Dann kann ich mit Copy & Paste das Setup immer verteilen.
Posted 08 December 2005 - 16:19
Mir würde in diesem Fall nur die Systemsuche einfallen, die das Paket auf einem entsprechenden Rechner sucht und den Pfad in eine Eigenschaft speichert die dann verwendet wird. Aber das kann unter umständen die installation ausbremsen. Einfacher wäre da schon wenn man die suche einschränken könnte.
Posted 08 December 2005 - 16:29
Wenn ich also die ganze Struktur auf ein anderes Rechner kopiere und dort ausführe (bzw. vom CD direkt ausführe) muß es funktionieren.
Dabei dachte ich dachte daß man irgendwie ein Relativpfad zu den setup.exe (z.B. ...\Module\) definieren kann.
Posted 08 December 2005 - 22:22
Stefan Krüger
InstallSite.org twitter facebook
Posted 21 December 2005 - 14:34
danke für dein Tip. Leider ich bin nicht so gut mit damit vertraut und weis nicht wie ich das machen kann. Ich benutze InstallShield 11.
Posted 21 December 2005 - 17:23
Stefan Krüger
InstallSite.org twitter facebook
Posted 21 December 2005 - 17:52
Posted 21 December 2005 - 17:55
Bei einer EXE kannst du es auf der Kommandoziele übergeben: [SourceDir]
In einem VBScript geht Session.Property("SourceDir")
Stefan Krüger
InstallSite.org twitter facebook
Posted 21 December 2005 - 18:02
- neue EXE -> Pfad verweist auf Verzeichnis
verwenden?
Dort dachte kann ich als Arbeitsverz. und die EXE angeben. Leider lüft es nicht.
Posted 22 December 2005 - 00:03
Es geht darum das ich jetzt drei große SUB-Setup (ca. 500 MB alle) in mein Setup einbinden muß.
Geplant habe es über benutzer definierte Aktion diese Setups einzubinden.
Erste Überlegung war CA zu erstellen mit einem festen Verweis auf die eine Sub-Setups Datei im Unterverzeichnis "Setups". Die gesuchte Sub-Setpatei würde ich erst nach der Erstellung des Pakets in das Unterverzeichnis reinkopieren. So hätte ich mir die Zeit ersparrt bei der Kompielierung. Bis jetzt habe ich versucht mit dem Verweis auf Verzeichnis -> [SourceDir]/Setups/Setup1.exe, leider ohne erfolg.
Welche CA-Typ wäre dafür am besten?
Wie sehen die einzelne Einträge für den gesuchten CA-Typ?
Ist das überhaupt realiesierbar?
Posted 22 December 2005 - 09:45
Die Installation des Child MSI wirst du erst nach Install Finalize aufrufen können oder vor InstallInitialize weil das Starten eines Installationsprozesses während ein anderer noch läuft von Win Installer nicht zugelassen wird. Hatte damit auch Probleme.
Dann musst du dir überlegen was du machst wenn du deine Anwendung wieder entfernst, wenn du das auch aus dem Haupsetup machen willst, muss du dafür extra Actionen anlegen, und das funktioniert auch nicht immer reibungslos. Das selbe beim Repair.
Posted 03 January 2006 - 10:11
danke für deinen Tipp mit der Log-Datei. Es hat mir sehr geholfen.
Hinweis an die ALLE!
Erstellt ihr immer von Anfang an, eine LOG-Datei und analisiere sie. Die Datei gibt euch viele Hinweise was beim Setup durchgeführt wurde, wo und was installiert wurde (alle Pfad Angaben).