Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Hilfe bei Fehler durch InnoSetup (https://www.delphipraxis.net/52943-hilfe-bei-fehler-durch-innosetup.html)

Grolle 7. Sep 2005 09:53


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?

Orbmu2k 8. Sep 2005 07:15

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';

MathiasSimmack 8. Sep 2005 08:28

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:

Grolle 8. Sep 2005 12:55

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:
DBCombobox1.Items.LoadFromFile(ExtractFilePath(ParamStr(0))+ 'daten\gruppen.txt');
Das ist doch eigentlich das gleiche wie wen ich dafür eine ExtraVariable definiere, oder
liege ich da ganz falsch? (Nicht schlagen, so lange programmiere ich noch nicht) :stupid:

MathiasSimmack 9. Sep 2005 07:53

Re: Hilfe bei Fehler durch InnoSetup
 
Zitat:

Zitat von Grolle
@ MathiasSimmack
Ich will eigentlich nur den Fehler finden. Es liegt mir fern das auf Inno zu schieben. :wink:

Doch, du hast gefragt, ob du auf InstallShield wechseln sollst, :stupid:. Aber wenn momentan nichts hilft, dann probier bitte noch mal das mit dem Arbeitsverzeichnis in der Verknüpfung im Inno Setup-Skript aus.

r2c2 9. Sep 2005 09:08

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

Grolle 9. Sep 2005 21:47

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). :?

Flocke 9. Sep 2005 21:59

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.

Karl-Heinz 9. Sep 2005 22:00

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

Grolle 9. Sep 2005 22:12

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 13:50 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz