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

IS12 TARGETDIR falsch !!!


10 replies to this topic

ali

ali
  • Full Members
  • 1,008 posts

Posted 08 November 2006 - 11:45

Hallo,
wir haben ja nun auf IS12 umgestellt. Jetzt haben wir hier ein Problem beim Admin Setup. Wir setzen über einen Dialog das TARGETDIR. Das TAGETDIR wir korrekt übernommen und gesetzt, das sieht man im Script. In der Action CoastFinalize werden auch dir Directory Propertys richtig gesetzt und auch mit der Action InstallFiles richtig installiert bzw. Kopiert. Aber wenn die Action ResolveSource ausgeführt wird, dann wird das TARGETDIR überschrieben, und zwar auf "Nothing", es ist leer. Für die eigentliche Kopieraktion ist das kein Problem, da die Verzeichnisproperties ja schon richtig übernommen wurden, aber wir führen noch ein Script aus, mit dem wir z.b. die Setup.exe, die .ini usw. an den Zielspeicherort kopieren, diese werden nicht mehr kopiert, da das Verzeichnis TARGETDIR leer ist. Mit IS10.5 hat das alles noch sauber funktioniert. Was sehr verwunderlich ist, ist das in der Action ResolveSource als derzeitiger Wert des TARGETDIR der Inhalt von SOURCEDIR angezeigt wird, als neuer Wert wird nichts angezeigt.
Ich habe nun versucht als WorkArround die Aktion ResolveSource in der Sequenz rauszunehmen, da die eigntlich von uns nicht benötigt wird. Aber wenn die Aktion nicht ausgeführt wird, wir diese automatisch bei der Aktion InstallAdminPakage ausgeführt und das TARGETDIR wieder zersemmelt.
Ist diese Problem mit IS12 schon bekannt, das kann ja nicht normal sein, da die Aktion mit IS10.5, IS9, IS7 usw. noch sauber gelaufen ist blink.gif

ali

ali
  • Full Members
  • 1,008 posts

Posted 08 November 2006 - 14:03

also es es schein hier nicht am ResolveSource zu liegen, vielmehr scheint es so zu sein, dass man nach InstallInitialize keinen Zugriff mehr auf Propertys über Script hat. Ich habe einige auspropiert wie TARGETDIR,SOURCEDIR,SourceDir und eigene Propertys, die Werte werden nicht mehr ausgegeben, sowie die Installation in den "Verzögerten" Ausführungsbereich wechselt, und das Installationsscript abarbeitet. ohmy.gif

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 08 November 2006 - 15:19

Ja genau. Schau mal in die MSI Hilfe unter CustomActionData, dort findest du eine Lösung.

ali

ali
  • Full Members
  • 1,008 posts

Posted 08 November 2006 - 18:40

so ganz bekomme ich es nicht hin. Mit einem Property klappts, aber mit mehreren nicht. Ich möchte die Propertys in einem Installscript verwenden. Wenn ich eine CA51 erstelle mit dem Propertyname zb. "TestCA" und dem Wert [TARGETDIR] und dann in dem Script mit dem CA-Name "TestCA" das "CustomActionData" auslese, bekomme ich den Wert von [TARGETDIR] angeziegt. Jetzt habe ich gelesen, man könne mehrer Propertys übergben, in meinem Fall mit TARGETDIR mit zb dem Wert /target="[TARGETDIR]\". Wenn ich ich dann aber in der Script CA "TestCA" mit MsiGetProperty "target" auslesen möchte bekomme ich nichts angezeigt, die Property "CustomActionData" wird mit "/target="[TARGETDIR]\" ausgegeben?!?

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 09 November 2006 - 01:43

Wenn du mehrere Werte übegeben musst, dann kannst du sie mit geeigneten Trennzeichen in einen String packen und nachher wieder auseinandernehmen, also in etwas das was du beschrieben hast. Nur musst du das auseinandersortieren eben in dein InstalLScript programmieren.
Visual Studio hat glaube ich so eine Funktion eingebaut, wahrscheinlich hast du dein Beispiel dort gefunden. Bei InstallShield ist so eine Funktion nicht eingebaut.
Aber du musst das Rad nicht neu erfinden, schau dir einfach mal das Beispiel "Decode the CustomActionData Property in InstallScript" auf http://www.installsi...s/en/msi/ca.htm an.

ali

ali
  • Full Members
  • 1,008 posts

Posted 09 November 2006 - 10:59

danke für den Tipp, das hat funktioniert.

ali

ali
  • Full Members
  • 1,008 posts

Posted 10 November 2006 - 15:12

noch was :
diese neue Funktionalität scheint sich aber nur auf Script zu begrenzen, wenn ich Verzeichnispropertys über CA's setze, dann funktioniert das ohne Problems.

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 10 November 2006 - 19:44

Es betrifft allgmein Custom Actions mit "deferred execution". Ich nehme an die Actions die bei dir funktionieren sind "immediate".
Das war eigentlich schon immer so, nur InstallScript war eine Ausnahme weil es eine externe Script Engine gab die die ganze Zeit lief und damit z.B. auch globale Variablen ermöglichte. Das hat aber eine Kommunikation zwischen den beiden Prozessen (der InstallScript-Engine und MSI) erfordert, und die hat öfter nicht richtig funktioniert (z.B. abhängig von DCOM Sicherheitseinstellungen). Deshalb ist man in Version 12 davon weggegangen. Jetzt wird für jede InstalLScript Custom Action eine Script-Eingine Instanz gestartet und dananch wieder beendet. Deshalb gibt's keine globalen Variablen mehr und deferred Aktionen müssen CustomActionData verwenden um an die Daten zu kommen.

ali

ali
  • Full Members
  • 1,008 posts

Posted 17 November 2006 - 09:07

Es sind CA35 die werden so wie's aussieht generell sofort ausgeführt. Da kann man ja nix einstellen. smile.gif

Edited by ali, 17 November 2006 - 09:08.


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 17 November 2006 - 16:13

Ja, bei Typ 35 gibt's aber auch kein Script und kein CustomActionData. Wenn du mit einer Typ 35 in der Execute Sequenz ein Property verwenden willst das du in der UI Sequenz gesetzt hast, muss es nicht nur "public" sein, also Property-name in Großbuchstaben, sondern auch im Property SecureCustomProperties gelistet sein. Sonst findest du (unter Vista) im Log einen Eintrag wie "disallowing property" oder so ähnlich, habe den genauen Wortlaut gerade nicht parat.

ali

ali
  • Full Members
  • 1,008 posts

Posted 20 November 2006 - 09:02

das teste ich mal aus, ich beschäftige mich gerade etwas intensiver mit Vista. (Die freigegebene Version ist ja bei MSDN seit Freitag eingestellt).