![]() |
Hilfe bei Fehler durch InnoSetup
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo!
Ich wollte meinem Adressprogramm einen Installer verpassen und habe mich für Inno entschieden. Das Setup läuft normal durch alles ok..... bis auf: Ich kann die Anwendung von keiner Verknüpfung aus starten. Die .exe an sich lässt sich ohne Probleme starten. Ich benutze den Ads local Server. Die Dateien sind alle in ihrer Form so wie sie sein sollen im Verzeichniss. Nach dem schwerwiegenden Windowsfehler kommt die unten angehängte Fehlermeldung. Sollte ich vielleicht auf InstallShield umsteigen? |
Re: Hilfe bei Fehler durch InnoSetup
Meine Vermutung ist dass du in deinem Programm nicht den aktuellen Pfad von deinem Programm bestimmst, sondern dich darauf verlässt dass ein Verweis auf eine Datei innerhalb deines Programmverzeichnisses auch ohne Pfadangabe funktioniert. Das Problem liegt also IMHO in deinem Programm und nicht bei InnoSetup.
Am besten du legst dir eine Variable für deinen aktuellen Programmpfad an
Delphi-Quellcode:
AppPath := IncludeTrailingBackslash(ExtractFilePath(Application.ExeName)); und verwendest diesen Pfad wenn du auf Dateien innerhalb deines Programmverzeichnisses oder dessen Unterstruktur zugreifst
Delphi-Quellcode:
AnyFile := AppPath + 'anyfile.txt'; AnyOtherFile := AppPath + 'folder\anyotherfile.txt'; |
Re: Hilfe bei Fehler durch InnoSetup
Notfalls noch das Arbeitsverzeichnis in der Verknüpfung setzen (s. [Icons] in der Inno Setup-Hilfe).
Dass man richtig programmieren sollte und nicht alles auf den Installer schiebt, ist die andere Sache. :stupid: |
Re: Hilfe bei Fehler durch InnoSetup
@ MathiasSimmack
Ich will eigentlich nur den Fehler finden. Es liegt mir fern das auf Inno zu schieben. :wink: Aber ich verstehe nicht so recht, warum ich die Anwendung trotzdem aus dem Verzeichniss, wo sie installiert ist starten kann. Leg ich anschließend eine Verknüpfung auf den Desktop ist alles gut. Innerhalb meines Programms greif ich immer wie folgt auf die Dateien zu:
Delphi-Quellcode:
Das ist doch eigentlich das gleiche wie wen ich dafür eine ExtraVariable definiere, oder
DBCombobox1.Items.LoadFromFile(ExtractFilePath(ParamStr(0))+ 'daten\gruppen.txt');
liege ich da ganz falsch? (Nicht schlagen, so lange programmiere ich noch nicht) :stupid: |
Re: Hilfe bei Fehler durch InnoSetup
Zitat:
|
Re: Hilfe bei Fehler durch InnoSetup
Bau mal n paar ShowMessages in dein Prog ein und guck mal, wo genau der Fehler auftaucht. Das sieht mir nämlich wirklich danach aus, als hättest du irgendwo relative Pfade verwendet...
mfg Christian |
Re: Hilfe bei Fehler durch InnoSetup
@r2c2
Der Fehler tritt direkt beim Start der Anwendung über die von Inno erstellte Verknüpfung auf. Ansonsten läuft das Programm wie gesagt ganz normal (wenn die exe aus dem Programmordner gestartet wird). Kann es daran liegen, dass ich bei AdsConnectionConnectpath lediglich daten\ angegeben habe? (In diesem Ordner liegen die Datenbankdateien). :? |
Re: Hilfe bei Fehler durch InnoSetup
Ja, es liegt daran, dass du keinen absoluten Pfad angibst.
Wenn du das Programm mit Doppelklick startest, dann ist das aktuelle Verzeichnis (für dein Programm) auch das Programmverzeichnis. Menüeinträge haben ein separates Feld, über das man das Arbeitsverzeichnis angeben kann. Wenn du im Startmenü auf deinen Eintrag navigierst, dann die rechte Maustaste drückst und "Eigenschaften" wählst, dann wird unter "Ausführen in" wohl nicht dein Programmverzeichnis stehen. |
Re: Hilfe bei Fehler durch InnoSetup
Genau daran liegt es.
Wenn Du das Programm über eine Verknüpfung startest (vom Desktop oder Startmenu), dann ist das aktuelle Verzeichnis eben nicht Dein App-Verzeichnis, sondern "C:\Dokumente und Einstellungen\Username\Desktop" oder so. Und da gibts Dein Datenverzeichnis nicht. Auf der sicheren Seite bist Du also, im Programm keine relativen Pfade zu nutzen, sondern IMMER mit Paramstr(0) zu arbeiten. Oder eben die Verknüpfung anzupassen, was der Installer aber unterstützen muss. Denn der User kann ja sonstwohin installieren, also muß der Installer dynamische Pfade bei den Verknüpfungen unterstützen. Ich würde lieber das Programm ändern, dann kann Dir nichts mehr passieren :-) Karl-Heinz Krönig |
Re: Hilfe bei Fehler durch InnoSetup
Hi Karl-Heinz!
Dar Ordner 'daten' liegt ja in meinem Application-Verzeichniss und soll auch so mitinstalliert werden und wird er jetzt auch: Habe den Tipp von MathiasSimmack nochmal genau erforscht und das mit dem workingdir bei Inno ausführlich getestet. Klappt :mrgreen: Danke für eure Hilfe :thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz