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/)
-   -   Innosetup: Uninstall.exe landet immer im Quellverzeichnis (https://www.delphipraxis.net/87450-innosetup-uninstall-exe-landet-immer-im-quellverzeichnis.html)

Ajin 28. Feb 2007 21:13


Innosetup: Uninstall.exe landet immer im Quellverzeichnis
 
Hallo Leute!

Ich habe ein simples Innosetup script erstellt. Läuft soweit alles prima, leider gibts da noch einen Haken: Die Uninstall.exe wird immer dem Quellverzeichnis erstellt. Wenn ich mein Setup vom USB-Stick installiere, ist das Programm zwar im c:\Programme Ordner nur die uninstall bleibt auf dem stick. Die Onlinehilfe hat mich nicht unbedingt weiter gebracht.

Delphi-Quellcode:
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

[Setup]
AppName=MeinProgramm
AppVerName=MeinProgramm xperimental Beta
DefaultDirName=MeinProgramm
DisableDirPage=yes
DefaultGroupName=MeinProgramm
DisableProgramGroupPage=yes
OutputDir=C:\Users\Jx\Desktop\Inno
OutputBaseFilename=MeinProgramm
Compression=lzma
SolidCompression=yes
WizardImageFile=C:\Users\Jx\Desktop\Inno\kfbig.bmp
WizardSmallImageFile=C:\Users\Jx\Desktop\Inno\kfs.bmp

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "german"; MessagesFile: "compiler:Languages\German.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Files]
Source: "C:\Users\Jaimy\Desktop\KF_source\*"; DestDir: "{sd}\Programme\MeinProgramm"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{group}\MeinProgramm"; Workingdir: "{sd}\Programme\MeinProgramm"; Filename: "{sd}\Programme\MeinProgramm\MeinProgramm.exe"
Name: "{group}\{cm:UninstallProgram,MeinProgramm}"; Filename: "{uninstallexe}"
Name: "{userdesktop}\MeinProgramm"; Filename: "{sd}\Programme\MeinProgramm\MeinProgramm.exe"; Workingdir: "{sd}\Programme\MeinProgramm"; Tasks: desktopicon
[edit=Luckie]Original Programmname entfernt. Mfg, Luckie[/edit]

messie 28. Feb 2007 21:45

Re: Innosetup: Uninstall.exe landet immer im Quellverzeichni
 
Zitat:

Zitat von Ajin
Name: "{group}\{cm:UninstallProgram,KF_Agent}"; Filename: "{uninstallexe}"

Ohne irgendeine Ahnung von dem zu haben was Du machst, fällt mir auf, daß dieser Eintrag der einzige in der ganzen Datei ohne Pfadangabe ist.
Versuch doch mal
Zitat:

"{group}\{cm:UninstallProgram,KF_Agent}"; Filename:"{{sd}\Programme\KF_Agent\{uninstallexe}} "
oder etwas Ähnliches. Und in [Files] kannst Du vielleicht auch noch einen Eintrag platzieren, falls die Uninstall.exe nicht im selben Verzeichnis erstellt wird wie Dein Programm.

Grüße, Messie

Ajin 1. Mär 2007 07:37

Re: Innosetup: Uninstall.exe landet immer im Quellverzeichni
 
Hallo!

Ja das habe ich auch probiert...ohne Erfolg. irgendwie muss es ein keyword geben welches den Pfad für die uninstall festlegt. Es ist zum Mäusemelken.

MathiasSimmack 1. Mär 2007 07:58

Re: Innosetup: Uninstall.exe landet immer im Quellverzeichni
 
Zitat:

Zitat von messie
Ohne irgendeine Ahnung von dem zu haben was Du machst, [...]

Hättest du besser haben sollen, dann hättest du gewusst, dass die Konstante {uninstallexe} den Dateinamen und Pfad des Uninstallers enthält (spezielle Pfadangaben sind also unnötig), und dass die Sektion [Icons] nur für die Erstellung der Shortcuts zuständig ist und nichts mit dem Kopieren oder Erzeugen der Dateien zu tun hat.


@Ajin: Ist das dein ganzes Skript, oder hast du (unabsichtlich) etwas unterschlagen. Ich sehe nämlich so keinen wirklichen Grund, warum der Uninstaller auf dem Stick bleibt, während die anderen Dateien ohne Probleme kopiert werden.

Ajin 1. Mär 2007 08:28

Re: Innosetup: Uninstall.exe landet immer im Quellverzeichni
 
Das ist das komplette script. Ich hab das Verhalten mal beobachtet. Die UnINstall Informationen werden immer hier abgelegt:

OutputDir=C:\Users\Jaimy\Desktop\Inno

Ich dachte dieser Pfad bestimmt nur den output des kompilierten Setups, wieso das script meine Uninstall.exe sowieo den Link auf diesen output Pfad verweist ist fraglich.

Ajin 19. Mär 2007 07:54

Re: Innosetup: Uninstall.exe landet immer im Quellverzeichni
 
nach 2 Wochen mal *push* :(
Ich finde keine Erklärung für dieses Verhalten. Hat jemand von euch intensivere Erfahrungen mit Innosetup gemacht?

IngoD7 19. Mär 2007 09:00

Re: Innosetup: Uninstall.exe landet immer im Quellverzeichni
 
Ich habe in der Section [SetUp] noch nie ein OutputDir= benutzt. Ich benutzte aber sehr wohl ein UninstallFilesDir=.

Um durch Inno durchzusteigen, darf/sollte/muss man sich in der Hilfe wirklich jede Einstellungsmöglichkeit durchlesen (und möglichst verstehen).

MathiasSimmack 19. Mär 2007 09:28

Re: Innosetup: Uninstall.exe landet immer im Quellverzeichni
 
Kleiner Ursache, große Wirkung. :lol:
Zitat:

Zitat von Ajin
Code:
[Setup]
DefaultDirName=KF_Agent

Ich hab es auch übersehen, wie ich zugebe :oops:, aber hier fehlt schlicht der gewünschte Zielordner. Es sollte so aussehen:
Code:
[Setup]
DefaultDirName=[color=red]{pf}\[/color]KF_Agent
{pf} steht für den "Programme"-Ordner. Fehlt diese Angabe, wird das Verzeichnis "KF_Agent" für den Uninstaller natürlich im aktuellen Verzeichnis erzeugt (meist das, in dem das Setup liegt, weil man selbiges vorher im Explorer auswählt). Dass die anderen Dateien korrekt kopiert werden, liegt daran, dass das Ziel in der [Files]-Sektion angegeben wird:
Zitat:

Code:
[Files]
Source: "C:\Users\Jaimy\Desktop\KF_source\*"; DestDir: "[color=red][b]{sd}\Programme\[/b]KF_Agent[/color]"; ...

Vielleicht noch mal über den fett markierten Teil nachdenken und anstelle von "{sd}\Programme" doch lieber {pf} benutzen. Aber das nur nebenbei.

Ajin 19. Mär 2007 10:06

Re: Innosetup: Uninstall.exe landet immer im Quellverzeichni
 
Ahh Danke!

Delphi-Quellcode:
[Setup]
DefaultDirName=C:\KF_Agent
war des Rätsels Lösung! Diese Konstanten {sd} oder {pf} kann ich nicht nutzen da das Tool auch unter Vista laufen soll. Die Ordnerstruktur ist da bissel anders gelöst.

Aber vielen Dank für den super Tip!

MathiasSimmack 19. Mär 2007 12:48

Re: Innosetup: Uninstall.exe landet immer im Quellverzeichni
 
Zitat:

Zitat von Ajin
Diese Konstanten {sd} oder {pf} kann ich nicht nutzen da das Tool auch unter Vista laufen soll. Die Ordnerstruktur ist da bissel anders gelöst.

Das taugt als Ausrede, nicht aber als Begründung. Die Ordnernamen sind einfach nur Englisch und werden im System (halbherzig) übersetzt. Ob dein Programm nun in "C:\Programme" oder "C:\Program Files" landet, spielt keine Rolle ... es sei denn, du nutzt im Programm feste Pfadangaben, und dann kann da weder Inno Setup noch Vista etwas dafür.

Nebeneffekt deiner "Lösung": Unter einem englischen Windows XP wird ein deutscher "Programme"-Ordner angelegt. Dieses Verhalten kennt man so nur von uralten englischen Setups, die partout auf einem deutschen Windows einen "Program Files"-Ordner erzeugt haben. Gibt es einen Grund, dieses Unverhalten wiederzubeleben?

btw, (Edit #2), dein gezeigtes Skript würde damit unter Vista ebenfalls den Ordner "Programme" erzeugen, den es eigentlich gar nicht gibt. Die Aussage von oben führst du damit also selbst ad absurdum.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:46 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