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

Child-Setup erstellen


15 replies to this topic

jarpo

jarpo
  • Members
  • 19 posts

Posted 07 December 2005 - 17:35

Hallo,

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

ali

ali
  • Full Members
  • 1,008 posts

Posted 07 December 2005 - 17:55

zB. mit
"Starten einer ausführbaren Datei"
schau mal in den Assistenten für Benutzerdefinierte Aktionen.

jarpo

jarpo
  • Members
  • 19 posts

Posted 08 December 2005 - 11:42

Den Assistenten habe ich verwendet. Dabei habe ich folgendes gewählt:

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?

Attached Images

  • Setup.JPG


ali

ali
  • Full Members
  • 1,008 posts

Posted 08 December 2005 - 14:06

wenn du etwas in die Binärtabelle aufnimmst kommt es auch in die MSI mit rein.

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.

jarpo

jarpo
  • Members
  • 19 posts

Posted 08 December 2005 - 16:02

danke für die Tips Ali,
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.

ali

ali
  • Full Members
  • 1,008 posts

Posted 08 December 2005 - 16:19

aso, ich dachte, das die Sub setups immer in dem Pfad liegen in dem auch die Setup.exe oder Subdirectory davon steht. wenn diese aber auch an beliebigen andern orten stehen könnte, wird die Sache schwieriger.
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.

jarpo

jarpo
  • Members
  • 19 posts

Posted 08 December 2005 - 16:29

das Ziel is naturlich das das alles von einem CD ausgeführt ohne das die einzelne Dateien auf das Zielsystem kopiert werden. Auf der CD wird eine setup.exe Datei und im Verzeichnis Module einzelne Sub-Setup Dateien. Die Struktur bleibt immer gleich.
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.

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 08 December 2005 - 22:22

Den Pfad zur MSI-Datei findest du über SOURCEDIR. Allerdings solltest du genau überlegen, wie sich das Setup bei Reparatur, Änderung, Uninstall oder Update verhalten soll, wenn ggf. die Original-CD nicht im Laufwerk liegt.

jarpo

jarpo
  • Members
  • 19 posts

Posted 21 December 2005 - 14:34

Hallo Stefan,

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.

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 21 December 2005 - 17:23

SourceDir ist ein Property.

jarpo

jarpo
  • Members
  • 19 posts

Posted 21 December 2005 - 17:52

wie kann ich dann das SourceDir-Property bei Benutzer definierten aktion verwenden

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 21 December 2005 - 17:55

Das kommt darauf an, was für eine Custom Action 8welcher Typ)?
Bei einer EXE kannst du es auf der Kommandoziele übergeben: [SourceDir]
In einem VBScript geht Session.Property("SourceDir")

jarpo

jarpo
  • Members
  • 19 posts

Posted 21 December 2005 - 18:02

kann ich die Option:
- neue EXE -> Pfad verweist auf Verzeichnis
verwenden?

Dort dachte kann ich als Arbeitsverz. und die EXE angeben. Leider lüft es nicht.

jarpo

jarpo
  • Members
  • 19 posts

Posted 22 December 2005 - 00:03

Leider funtioniert es nicht!
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?

ali

ali
  • Full Members
  • 1,008 posts

Posted 22 December 2005 - 09:45

machen kannst du das schon, ist aber nicht so einfach, da du darauf achten musst das du das Setup an der richtigen Stelle aufrufts und der Pfad richtig aufgelöst ist. Am besten du schreibst dir ein log beim install mit /L*V und schaust rein ob der Pfad richtig aufgelöst ist und das MSI überhaupt gestartet wird.
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.

jarpo

jarpo
  • Members
  • 19 posts

Posted 03 January 2006 - 10:11

Hallo Ali,
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).