Ausführen einer CUSTOM ACTION
Posted 21 September 2005 - 12:40
ich habe mir gerade mal Install Shield 11 Pro zum testen runtergeladen und versuche ein MSI-Paket zu erstellen, was einige Dateien kopiert und zum Abschluß ein Batch ausführt. Diese Batch File wurde mit dem Installer nach C:\Programme\Mein Test\ kopiert und heisst test.bat.
Dann habe ich versucht eine CUSTOM ACTION zu erstellen, die diese nach dem Kopiervorgang aufruft.
Als Working Directory hab ich den WindowsFolder angegeben und als FILENAME & Command line
QUOTE |
\system32\cmd.exe "C:\Programme\Mein Test\test.bat" |
Nach dem Aufruf funktioniert das mit dem Batch aber nicht. Zumindest die Daten sind da, wo ich sie haben will.
Kann mir also jemand erklären, wie ich dass hinbekomme ? hab gerade erst damit angefangen und komm halt nicht weiter...
Vielen Dank schonmal.
MfG
HeikStar
Posted 21 September 2005 - 13:45
Arbeitsverzeichnis: SystemFolder
Filename: cmd.exe "[TEST]test.bat"
wofür TEST für die Verzeichnisproperty steht die auf das Verzeichnis verweist wo die bat Datei hin kopiert wird. Das siehst du in der Komponentenansicht.
Posted 21 September 2005 - 14:47
Edited by ali, 21 September 2005 - 14:53.
Posted 21 September 2005 - 15:03
Kann das ggf. noch an den Einstellungen der Custom ACTION liegen ?
Da scheien für mich folgende Einträge von Bedeutung:
Execution Scheduling
Install UI Sequenze
Install EXEC Sequenze
Bei mir steht da folgendes drin:
Execution Scheduling: Execute only if running on client after UI Sequenze
Install UI Sequenze: After Migrate FeatureStates
Install EXEC Sequenze: After PublishFeature.
Kann es sein das da der Fehler liegt ?
***MAN IST DAS PEINLICH.... TUT MIR LEID DAS ICH MIT SO FRAGEN NERVEN MUSS***
Posted 21 September 2005 - 15:18
Naja, ich habe die deutsche Version von IS und weiss nicht genau was da im englischen steht musst du halt mal kurz übersetzen.
Im allgemeinen müsste das mit den Einstllungen funktionieren
Rückgabeverarbeitung: Synchron (Exitcode Ignorieren)
In Script Ausführung: sofortige Ausführung
Ausführungsplanung : immer ausführen -> das musst du schon mal ändern.
wenns in der UI sequenz (Benutzeroberfläche) ausgeführt werden soll, dann hängs mal nach Cost Finalize ein.
wenns dann nicht geht musst du halt mal loggen:
setup.exe /v"/L*V c:\temp\msi.log"
(ich gehe mal davon aus das die bat Datei nur zum testen ausgeführt werden soll, live ist sowas glaube ich gar nicht notwendig da man alles mit CustomAction oder kleinem Script machen kann)
Edited by ali, 21 September 2005 - 15:25.
Posted 21 September 2005 - 16:06
Er ruft zumindest schonmal die cmd.exe auf, nur ohne meine Batch zu starten, und dass wäre mir schon wichtig, da ich diese Batch zum Updaten einer SQL-Datenbank benötige.
Das müsste dann ja an der Command Line liegen. Der Ausführungsplan ist übrigens auf After Finallize eingestellt, also nach dem kopieren der Dateien und vor dem Entfernen der Sicherungsdateien. D.h. dass er die Datei zu dem Zeitpunkt schon an dem Ort hat, woher er sie aufrufen soll, scheint es aber nicht hinzubekommen. Ich habe es mal in der Komponente überprüft, und da ist für die Batch als DESTINATION auch das Verzeichnis [INSTALLDIR] hinterlegt und der Aufruf meiner CUSTOM ACTION ist folgender:
cmd.exe "[INSTALLDIR]test.bat"
Posted 21 September 2005 - 16:11
Posted 21 September 2005 - 16:34
Ich habe mal nachgeschaut und kann leider nix genaues finden:
Die Custom Action heist CMD und die zu BatchDatei heist vw.bat.
Danke übrigens für deine lang anhaltende Unterstüzung.
Attached Files
Posted 21 September 2005 - 20:44
cmd.exe /c "[TEST]test.bat"
Besser wäre natürlich ein VBS anstatt ein BAT (dann brauchst du kein cmd.exe und es kommt keine DOS-Box hoch).
Gibt es einen bestimmten Grund warum du nicht die SQL-Ansicht verwendest, um dein SQL-Skript auszuführen?
Stefan Krüger
InstallSite.org twitter facebook
Posted 14 March 2007 - 11:41
ich habe das selbe problem wie heikstar nur benutze ich devstudio 9.
ich gehe wie in diesem thread beschrieben vor. doch die batchdatei wird nicht ausgeführt. bin schon am verzweifeln und glaube schon an einen bug in
devstudio 9.
hier nochmal meine schritte:
benutzerdefinierte aktionen -> dort neue exe und wähle "pfad verweist auf verzichnis". arbeitsverzeichnis ist SystemFolder. unter Dateiname & Befehlszeile steht bei mir cmd.exe /c "[_CG]dummy.bat". das _CG in eckigen klammern stammt aus dem komponenteziel in der die batchdatei liegt, sollte also richtig sein.
Rückgabeverarbeitung: syncron (exit code ignorieren
In-Script-Ausführung: Sofortige Ausführung
Ausführungsplanung: Immer ausführen
danach hab ich die custom action nach InstallFinalize sequenziert.
ausgeführt wird die batchdatei dennoch nicht.
ich weiss nciht mehr weiter...
Edited by elpuGo!, 14 March 2007 - 11:43.
Posted 14 March 2007 - 12:03
wenn ich unter rückgabeverarbeitung synchron (exit-code prüfen) einstelle
erscheint am ender der installation die meldung:
Error 1722. There is a problem with this windows installer package. A program run as part of the setup did not finish as expected. contact your support personnel
or package vendor.
da ich der support bin ;-) und nicht weiter weiss frag ich hier...
Posted 14 March 2007 - 12:15
du solltest sicherheitshalber auch mal ein installationslog machen wie oben beschrieben. In dem Log suchst du dann nach dem Property _CG, du solltest dann dieses Property finden mit dem zugewiesenen Pfad, -> überprüfen.
Steht das Property wirklich mit einem "_" im Ziel bei der Koponentenansicht?
Posted 14 March 2007 - 14:19
das arbeitsverzeichnis darf nicht SystemFolder heißen sondern dort muss das komponentenziel rein. in meinem fall _CG. das läßt sich dort auch per combobox auswählen. und da cmd.exe eh überall bekannt ist muss bei dateiname & befehlszeile cmd.exe /c dummy.bat ohne jegliche anführungszeichen rein.
damit funktioniert es tadellos...