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

Variable Verzeichnisnamen


4 replies to this topic

Andreas Franz

Andreas Franz
  • Full Members
  • 27 posts

Posted 17 November 2008 - 16:45

Hallo zusammen,
ich versuche für eine Client-Server-Anwendung ein Setup zu entwerfen. Auf der Serverseite ergibt sich eine umfangreiche Verzeichnisstruktur.
Beispielsweise benötige ich unter anderem ein "Spool"-Verzeichnis zur Ablage von Druckspools und eine Bildverzeichnis zur Ablage von Grafiken.

Damit die Anwender einen Geschäftsvorfall "testen" können, werden mehrere so genannte Umgebungen definiert. "Production", "Test" und "Demo".
Da in jeder Umgebung gedruckt werden kann, brauche ich separate Verzeichnisse (z.B. "\\server\productname\spool\production", "\\server\productname\spool\test" und "\\server\productname\spool\demo").

Bei den Bildern ist es ähnlich. Hier benötige ich beispielsweise "\\server\productname\pict\production", "\\server\productname\pict\test" und "\\server\productname\pict\demo".

Zu allem Überfluss sind die Namen der einzelnen Umgebungen selbst variabel. D.h. die Umgebungen könnten auch "ProductionPayroll", "TestPayroll" und "DemoPayroll" lauten.

Daher dachte ich, ich könnte je Umgebung eine PROPERTY definieren (UMGEBUNG1 bis UMGEBUNG3) und die Verzeichnisnamen variabel gestalten.
Wenn ich aber einer Komponente den Destination-Pfad "[INSTALLDIR]spool\[UMGEBUNG1]" zuweise, wird das Property nicht aufgelöst sondern ein Verzeichnis "[UMGEBUNG1]" angelegt (in URL-Notation: \\server\productname\spool\[UMGEBUNG1]).

Was mache ich falsch? Oder lässt sich die Anforderung schlicht nicht umsetzen?

Bin für jeden Hinweis dankbar.

Andreas

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 19 November 2008 - 10:35

Das liegt daran, dass dafür Directory-Einträge angelegt werden, die jeweils den vollen Pfad enthalten. Du kannst es so lösen:
Gib als Default jeweils einen besteimmten Pfad vor.
InstallSield legt dafür automatisch einen Directory-Eintrag an. Dessen Name wird in geschweiften Klammern angezeigt.
Erstelle eine Custom ction vom Type "Property setzen" (Typ 51). Das zu setztende Property ist der Directory-Eintrag, der Wert ist der volle Pfad den due zur Laufzeit haben möchtest, also [INSTALLDIR]spool\[UMGEBUNG1]
Füge diese Custom Action in der InstallUI und InstallExecute Sequenz jeweils vor CostInitialize ein.

Andreas Franz

Andreas Franz
  • Full Members
  • 27 posts

Posted 19 November 2008 - 19:08

Hallo Stefan,
vielen Dank für die Info. Leider konnte ich Deine Vorgehensweise noch nicht im Detail testen.
Nur soviel habe ich bereits herausgefunden. Wenn die Custom Action ein Verzeichnis verwendet welches über die Oberfläche gefüllt wird, war VOR "CostInitialize" zu früh. Daher habe ich den Aufruf im UI NACH SetupProgress verschoben.

Nochmals vielen Dank
Andreas

PS: Da ich diese und nächste Woche nicht im Büro bin, kann ich Dir / Euch erst anfang Dezember berichten ob ich Erfolg hatte.

Andreas Franz

Andreas Franz
  • Full Members
  • 27 posts

Posted 26 November 2008 - 19:16

Hallo Stefan,
bei meinen Tests bin ich auf ein Problem gestoßen. Sobald ich ein administartives Setup ("setup.exe /a") ausführe, werden wieder die "ursprünglichen" Pfade benutzt. Im LogFile sehe ich aber, dass die Custom-Action (CA) ausgeführt wurde.

Muss ich die CA innerhalb der Administration Sequenz anders (bzw. an einer anderen Stelle) aufrufen?

Derzeit habe ich die CA wie folgt in die Sequenzen eingehängt:
• Installation Sequenz:
-- nach "Setup Progress" (im "User Insterface" Bereich)
-- vor "CostInitialize" (im "Execute" Bereich)

• Administration Sequenz:
-- vor "CostInitialize" (sowohl im "User Interface" als auch im "Execute" Bereich)

Vielen Dank
Andreas

Edited by Andreas Franz, 26 November 2008 - 19:17.


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 12 December 2008 - 12:10

Nach ConstFinalize musst du stattdessen eine Custom Action "set a directory" (Typ 35) verwenden.