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

INSTALLDIR in BASIC MSI Project InstallScript


8 replies to this topic

Smileman

Smileman
  • Members
  • 11 posts

Posted 27 June 2005 - 10:58

Hallo,

ich hab ein Problem, daß aber nur auf einem bestimmten Rechner und sonst nicht nachvollziehbar ist.

Ich habe in einem BASIC MSI Project ein InstallScript geschrieben und benutzte darin die Variable INSTALLDIR um in das Installationsverzeichnis wechseln zu können. Dort will ich eine Datei aufrufen ... usw.

Leider hat diese Variable auf einem Rechner beim Aufruf keinen Wert gespeichert und gibt stattdessen nur "1" aus. Damit komme ich natürlich nicht in das entsprechende Verzeichnis.

Hat jemand eine Idee, warum es grad an einem bestimmten Rechner hier zu diesem Problem kommt? Der Rechner unterscheidet sich nicht von den anderen. Er läuft mit Win XP SP2.

Oder wie könnte ich an diesen Fehler rankommen?

Vielen Dank schon mal.

Marko dry.gif

ali

ali
  • Full Members
  • 1,008 posts

Posted 28 June 2005 - 08:23

also ich würde das MSI erst mal loggen. Mit "myínstall.msi /L*V c:\TEMP" zum Bleistift.

Smileman

Smileman
  • Members
  • 11 posts

Posted 29 June 2005 - 08:49

Danke für den Hinweis,

aber leider bin ich noch nicht allzu vertraut mit Install Shield 11 Premium. Ich bekomme als Output eine *.exe Datei. Finde dazu aber keinerlei *.msi.

Wie kann ich da logen? sad.gif

ali

ali
  • Full Members
  • 1,008 posts

Posted 29 June 2005 - 09:45

ahso, du kompilierst alles in eine exe.

Da musst du den aufruf

Tralala.exe /V"/L*V c:\TEMP\msi.log" mal testen.

Im Übrigen: Machst du eine Erstinstallation, oder ein Update? Minor Major sonsdewas?
War das Paket schon einmal auf dem Rechner ? aber das sieht man dann im log.

Edited by ali, 29 June 2005 - 09:57.


Smileman

Smileman
  • Members
  • 11 posts

Posted 29 June 2005 - 11:53

Danke erstmal für Deine schnelle Antwort.

Also es ist eine Erstinstallation - kein Update und nix sonst.
Auf allen Rechnern hier läuft es problemlos, aber auf dem einen Rechner eben nicht.

Ich hab jetzt eine Log-Datei mit 4MB - werd jetzt mal durchkucken, was ich finde.

Smileman

Smileman
  • Members
  • 11 posts

Posted 29 June 2005 - 12:06

QUOTE (ali @ 2005-06-29 09:45)
ahso, du kompilierst alles in eine exe.

Da musst du den aufruf

Tralala.exe /V"/L*V c:\TEMP\msi.log" mal testen.

Im Übrigen: Machst du eine Erstinstallation, oder ein Update? Minor Major sonsdewas?
War das Paket schon einmal auf dem Rechner ? aber das sieht man dann im log.

Also ich hab die LOG-Datei nun durchgeforstet, aber nicht sungewöhnliches gefunden, was aber natürlich nichts heißen muß.

Worauf muss ich denn achten?

Ich hab zwei Stellen gefunden, wo das Verzeichnis korrekt gesetzt wird:

Property(S): INSTALLDIR = C:\Programme\myDir\
Property©: INSTALLDIR = C:\Programme\myDir\

Tja ber besser blick ich da noch ned durch.

ali

ali
  • Full Members
  • 1,008 posts

Posted 29 June 2005 - 12:16

hast du dir im InstallScript mal einen MassageBox ausgeebn lassen, um zu sehen wie der Werrt ist, du kannst auch mal eine extra Custom Action erstellen und es in die Sequenz an verschiedenen stellen ausführen lassen um zu sehen wann sich der Inhalt der Property ändert. Was mich ein bischen stutzig macht ist, wenn Installdir nicht stimmt, dann sollte ja auch die Prüfung des Installationsverzeichnisses in den Dialogen ein Fehler bringen.
Wann setzt du den die CA in welcher Sequenz und wie ist sie eingestellt?
Hast du evtl auf den Rechnern unterschiedlicher VErsionen des Win Installer 3?

Smileman

Smileman
  • Members
  • 11 posts

Posted 29 June 2005 - 12:52

Wau - danke für Deinen Einsatz!

Also hier mal folgendes:

Ich hab natürlich mal an unterschiedlichen Stellen im Script mir MessageBoxes ausgeben lassen und jeweils - auf diesem einen Rechner - entweder eine 0 oder 1 oder -1 bekommen - z.B. an der Stelle im Script:

if (ChangeDirectory(INSTALLDIR) < 0 ) then
MessageBox("unable to change directory to "+INSTALLDIR,INFORMATION);
endif;

Die Ausgabe hier war zuletzt: "unable to change directory to -1"

Bis jetzt hatte ich das Script ganz am Schluss ausführen lassen, was bei den anderen Rechnern ja auch funktioniert - nach "IsSelfRegisterFinalize"

Interessanterweise installiert er in das korrekte Verzeichnis. Ich hab aber auch schon mal ne Custom Action eingerichtet und und eine andere Property gesetzt und sie dann mit MsiGetProperty(...) abgerufen. Überall funktionierts nur hier ned.

Die CA steht auf "Immediate Execution"
"Always execute"
InstallExecuteSequence: After IsSelfRegisterFinalize

Wie kann ich denn die Version des WinInstaller herausfinden? Und wenn sie unterschiedlich sind? Wie kann ich das verhindern bzw. ändern?

Danke für Deine Antwort und Mühe - is echt mega-lobenswert!


ali

ali
  • Full Members
  • 1,008 posts

Posted 30 June 2005 - 11:17

also ich Stand auch mal vor dem Problem, das sich der Wert von INSTALLDIR gegen Ende der Installation verloren hat und ein Script nicht gelaufen ist. Sind die Betriebssystemversionen zwischen dem Funktionierendem und dem nicht Funktionierendem MSI wirklich gleich?
Hast du mal Versucht in der Property Table einen Property zu erstellen, dann eine Custom Action mit der du dieses Property wärend der installation mit INSTALLDIR und deinem "anhänsel" auf den gewünschten Verzeichniswert setzt und dann das alles ausführst. Die Werte von selbst definierten Propertys werden nämlich nur von dir geändert
also versuchs mal.

Edited by ali, 30 June 2005 - 11:19.