Einzelnen Beitrag anzeigen

Brainshock

Registriert seit: 26. Nov 2004
Ort: 37345
214 Beiträge
 
Delphi 7 Professional
 
#1

InnoSetup: Kundenabhängige Installation

  Alt 18. Feb 2016, 11:07
Hallo,

ich möchte mit InnoSetup eine Installation erstellen und stoße auf Probleme.

Ich versuche folgendes Szenario umzusetzen:

Der Kunde hat das Hauptprogramm installiert und dessen Konfigurationsdatei enthält das Kundenkürzel:
c:\ProgramData\<ConfigPath>\settings.ini
Code:
[Application]
Client=ABB
Mein Programm ist eine Erweiterung für das Hauptprogramm. Es muss, abhängig vom Kundenkürzel, Dateien installieren und ini-Einträge machen.

Meine Probleme:

Wie stelle ich es an, dass während der Installation die settings.ini vom Hauptprogramm ausgelesen wird und endsprechend des ausgelesenen Kundenkürzel die passenden Dateien installiert werden? Es muessen ja alle Dateien in die Setup.exe, aber nur abhängig vom Kunden passenden installiert werden. Hier kommen ja alle in die Setup.exe und werden installiert:

Code:
[Files]
; Exe
Source: "{#ProjectSourcePath}{#ProjectExeName}"; DestDir: "{app}"; Flags: ignoreversion; Components: program
; Certificate CA
Source: "{#ProjectSourceCertPath}{#ProjectDatabaseCACert}"; DestDir: "{#ProjectSettingsPath}"; Components: program
; Certificate ABA
Source: "{#ProjectSourceCertPath}{#ProjectDatabaseUserCertABA}"; DestDir: "{#ProjectSettingsPath}"; Components: program
Source: "{#ProjectSourceCertPath}{#ProjectDatabaseUserKeyABA}"; DestDir: "{#ProjectSettingsPath}"; Components: program
; Certificate ABB
Source: "{#ProjectSourceCertPath}{#ProjectDatabaseUserCertABB}"; DestDir: "{#ProjectSettingsPath}"; Components: program
Source: "{#ProjectSourceCertPath}{#ProjectDatabaseUserKeyABB}"; DestDir: "{#ProjectSettingsPath}"; Components: program
Das zweite Problem ist die Konfiguration (Ini) der Erweiterung. Äbhängig vom Kundenkürzel, müssen die Einträge geschrieben werden.

Code:
[INI]
Filename: "{#ProjectSettingsFileName}"; Section: "Database"; Key: "DBUser"; String: "{#ProjectDatabaseUser}"; Flags: uninsdeleteentry; Components: configuration\lan configuration\wan
Filename: "{#ProjectSettingsFileName}"; Section: "Database"; Key: "DBPass"; String: "{#ProjectDatabasePass}"; Flags: uninsdeleteentry; Components: configuration\lan configuration\wan
Filename: "{#ProjectSettingsFileName}"; Section: "Database"; Key: "DBProperties"; String: "{#ProjectDatabaseProperties}"; Flags: uninsdeleteentry; Components: configuration\lan configuration\wan
Ich hab irgendwie keinen Schimmer, wie ich das umsetzen soll.


Hoffentlich gibt es hier jemanden, der mir ein bisschen weiter helfen kann.


Gruß
Matthias
Matthias

Geändert von Brainshock (18. Feb 2016 um 15:55 Uhr)
  Mit Zitat antworten Zitat