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

Nested Installations


2 replies to this topic

Hensz

Hensz
  • Full Members
  • 23 posts

Posted 21 April 2005 - 14:50

Hi!

Als ich mit Installer-Projekten angefangen habe bin ich sehr schnell auf Nested Installations gekommen. Das Prinzip dahinter gefällt mir sehr gut: Man hat eine Reihe von MSI-Packeten, die jeweils seperat installiert werden können. Außerdem hat man eine beliebige Anzahl von Installationen, die jede gewünschte Kombination dieser Packete zusammen installieren. Außerdem ist das Prinzip von Nested Installations relativ gut dokumentiert (z.B. http://support.insta...icleid=q105706).

Soweit zur Theorie. Damals habe ich also angefangen mit einem Test-Setup, das eine einzige Text-Datei installiert. Dieses Setup wollte ich nun von einem anderen Setup aus aufrufen. Dabei habe ich zunächst das Hilfe-Dokument (Custom Actions - Nested Installations) der DevStudio Help Library zur Hilfe genommen.

Leider funktionierte das so erstellte Setup nicht korrekt, die Kind-Installation wurde nicht korrekt deinstalliert. ohmy.gif Nach ca. 5 Monaten konnte ich das Problem mit Hilfe des Supports von InstallShield lösen. Die Ursache: Die Hilfedatei wie auch die oben angegebene Seite sind falsch: Die Bedingung der Remove-Custom Action muss 'Installed AND REMOVE="ALL"' lauten, und nicht nur 'REMOVE="ALL"'. Außerdem muss diese Custom Action nach InstallValidate ausgeführt werden, nicht wie in der Hilfe nach CostFinalize genannt. wink.gif

Nachdem dieses Problem mühsam gelöst wurde hat das Setup wie gewünscht funktioniert. Gestern jedoch hatte ich wieder einmal ein ähnliches Problem. Da ich den Mechanismus jetzt kenne und weiß, dass Nested Installations eine ziemlich empfindliche Sache sind, habe ich vorsichtshalber erst einmal erneut ein Test-Setup erstellt. Diesmal jedoch habe ich das zuvor mühsam erworbene Wissen angewendet und von Anfang an die Custom Actions "richtig" erstellt. Beim ersten Test dann die Ernüchterung: Die Deinstallation der Kind-Installation funktionierte wieder nicht. mad.gif

Kann mir jemand bei meinem Problem weiter helfen? Welche Schritte muss man machen, damit eine Nested Installation definitiv funktioniert? Vermutlich liegt es an irgendwelchen Einstellungen, die in der Hilfe und auf der o.g. Webseite nicht erwähnt wurden, vielleicht irgendwelche Einstellungen in der Kind-Installation?

Ich hoffe, dieses Mal beiße ich mir nicht 5 Monate lang die Zähne an diesem Problem aus... unsure.gif

CU, Hensz

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 21 April 2005 - 21:07

Allgemein wird empfohlen, meine Nested Installations zu verwenden, weil es eben viele Einschränkungen und seltsame Probleme gibt. Letzteres steht sogar in der Doku.

hmoeckel

hmoeckel
  • Full Members
  • 97 posts

Posted 22 April 2005 - 17:12

Hallo

ich hab mal das so gemacht

In der Hauptinstallation gibt es ein Feature nestedInstall, das die nested installation 'enthaelt'.

InstallCustomAction: Bedingung &nestedInstall>2
DeInstallCustomAction: Bedingung &nestedInstall=2 And B_ISINSTALLED

Das Property B_ISINSTALLED ist 1, wenn ich feststelle, dass einbestimmter Registry-Entry vorhanden ist, der bei der Installation von 'nestedInstall' gesetzt wird.

Ansonsten stimme ich dem zu, dass die 'nested installations' einige Haken haben, vor allem wenn es um diverse Upgrades und dergleichen geht.

viel Spass weiterhin

hmoeckel