![]() |
InnoSetup: Kundenabhängige Installation
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:
Mein Programm ist eine Erweiterung für das Hauptprogramm. Es muss, abhängig vom Kundenkürzel, Dateien installieren und ini-Einträge machen.
[Application]
Client=ABB 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:
Das zweite Problem ist die Konfiguration (Ini) der Erweiterung. Äbhängig vom Kundenkürzel, müssen die Einträge geschrieben werden.
[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
Code:
Ich hab irgendwie keinen Schimmer, wie ich das umsetzen soll. :?
[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 Hoffentlich gibt es hier jemanden, der mir ein bisschen weiter helfen kann. Gruß Matthias |
AW: InnoSetup: Kundenabhämgige Installation
Du kannst das mit dem Check-Parameter umsetzen.
Im Script sieht das z.B. so aus:
Code:
Nun kannst du in der Code-Section eine Funktion anlegen, die hier in diesem Fall MyProgCheck hieße. Wenn die true zurück gibt, dann wird die Zeile ausgeführt, sonst nicht.
[Files]
Source: "MYPROG.EXE"; DestDir: "{app}"; Check: MyProgCheck In der Funktion müsstet Du dann die Ini auslesen und auswerten. |
AW: InnoSetup: Kundenabhämgige Installation
Genial, danke. Das hilft mir schon enorm weiter.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:03 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