Basis Skript für die Installation von VFP-Programmen mit InnoSetup

Da das mitgelieferte InstallShield Express zunehmend Probleme machte, wurde ich vor die Aufgabe gestellt ein neues Setup unter InnoSetup zu erstellen:

Herausgekommen ist dabei folgendes Basis-Skript, welches vorwiegend von den Ideen/Anregungen der folgenden Seite gespeist ist:

http://fox.wikis.com/wc.dll?Wiki~InnoSetup~VFP (englisch)

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

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{CE1C964D-2660-4526-A437-E3C57262750A}
AppName=MyApp
AppVerName=MyApp 1.0
AppCopyright=Copyright © 2009 Musterfirma
AppPublisher=Musterfirma
AppPublisherURL=http://www.musterfirma.de
AppSupportURL=http://www.musterfirma.de
AppUpdatesURL=http://www.musterfirma.de
DirExistsWarning=Auto
DefaultDirName={pf}\myapp-folder
DefaultGroupName=MyApp
LicenseFile=C:\…\lizenz.rtf
InfoBeforeFile=C:\…\readme.rtf
OutputDir=C:\…\InnoSetup\MyApp\output
OutputBaseFilename=myapp-setup.exe
SetupIconFile=C:\…\InnoSetup\myapp\myapp.ico
Compression=lzma
SolidCompression=yes
PrivilegesRequired=admin

[Languages]
Name: „german“; MessagesFile: „compiler:Languages\German.isl“

[Tasks]
Name: „desktopicon“; Description: „{cm:CreateDesktopIcon}“; GroupDescription: „{cm:AdditionalIcons}“; Flags: unchecked
Name: „quicklaunchicon“; Description: „{cm:CreateQuickLaunchIcon}“; GroupDescription: „{cm:AdditionalIcons}“; Flags: unchecked

[Files]
; Programm Bestandteile, nicht OCX/DLL
Source: „C:\…\InnoSetup\myapp\myapp.exe“; DestDir: „{app}“; Flags: ignoreversion

; Microsoft Visual C++ 7.1 Runtime DLL
Source: C:\…\Innosetup\Myapp\winsystem\msvcr71.dll; DestDir: {sys}; Flags: restartreplace uninsneveruninstall sharedfile

; Microsoft Visual FoxPro 9.0 Runtime Support Libraries
;bezgl. GDIPlus gab es unterschiedliche Angaben, ob dieses in System oder unter Shared abgelegt werden sollte. Da ;ich Problem mit System hatte, habe ich mich für das Shared-Verzeichnis entschieden

Source: C:…\Myapp\winsystem\gdiplus.dll; DestDir: {cf}\Microsoft Shared\VFP; Flags: sharedfile uninsneveruninstall restartreplace
Source: C:\Programme\Common Files\Microsoft Shared\VFP\vfp9r.dll; DestDir: {cf}\Microsoft Shared\VFP; Flags: regserver sharedfile uninsneveruninstall restartreplace
Source: C:\Programme\Common Files\Microsoft Shared\VFP\vfp9t.dll; DestDir: {cf}\Microsoft Shared\VFP; Flags: sharedfile uninsneveruninstall restartreplace
Source: C:\Programme\Common Files\Microsoft Shared\VFP\vfp9renu.dll; DestDir: {cf}\Microsoft Shared\VFP; Flags: sharedfile uninsneveruninstall restartreplace
Source: C:\Programme\Common Files\Microsoft Shared\VFP\vfp9rdeu.dll; DestDir: {cf}\Microsoft Shared\VFP; Flags: sharedfile uninsneveruninstall restartreplace

; Microsoft HTML Help Runtime Files for Visual FoxPro 9.0
Source: C:\Programme\Common Files\Microsoft Shared\VFP\foxhhelp9.exe; DestDir: {cf}\Microsoft Shared\VFP; Flags: sharedfile uninsneveruninstall restartreplace
Source: C:\Programme\Common Files\Microsoft Shared\VFP\foxhhelpps9.dll; DestDir: {cf}\Microsoft Shared\VFP; Flags: regserver sharedfile restartreplace uninsneveruninstall
; NOTE: Don’t use „Flags: ignoreversion“ on any shared system files

; Microsoft Report Runtime Files for Visual FoxPro 9.0
Source: C:\Programme\Common Files\Microsoft Shared\VFP\ReportPreview.app; DestDir: {cf}\Microsoft Shared\VFP; Flags: sharedfile uninsneveruninstall restartreplace
Source: C:\Programme\Common Files\Microsoft Shared\VFP\ReportOutput.app; DestDir: {cf}\Microsoft Shared\VFP; Flags: sharedfile uninsneveruninstall restartreplace
Source: C:\Programme\Common Files\Microsoft Shared\VFP\ReportBuilder.app; DestDir: {cf}\Microsoft Shared\VFP; Flags: sharedfile uninsneveruninstall restartreplace

[Icons]
Name: „{group}“; Filename: „{app}\myapp.exe“; WorkingDir: „{app}“; comment: „Mein Programm“
Name: „{commondesktop}\Myapp“; Filename: „{app}\myapp.exe“; Tasks: desktopicon
Name: „{userappdata}\Microsoft\Internet Explorer\Quick Launch\Myapp“; Filename: „{app}\myapp.exe“; Tasks: quicklaunchicon

[Run]
Filename: „{app}\myapp.exe“; Description: „{cm:LaunchProgram,MyApp}“; Flags: nowait postinstall skipifsilent

; NOTE:  notwendig, damit das Hilfesystem richtig registriert wird
Filename: {cf}\Microsoft Shared\VFP\foxhhelp9.exe; Parameters: /regserver

Da im Rahmen der Anwendung auch weitere OCX-Dateien bzw. Runtimes (u.a. Visual Basic) zum Einsatz kommen, bin ich hier wie folgt vorgegangen:

Ich habe einfach die entsprechenden Dateien über InstallShield – Express zusammengesucht. Da InnoSetup es nicht erlaubt diese direkt aus einem System-Verzeichnis einzuspeisen, habe ich für all diese Dateien ein eigenes System-Unterverzeichnis innerhalb meines Setup-Verzeichnisses angelegt und diese Dateien hierhin kopiert.

Zudem habe ich sichergestellt, dass die Versionsnummern dieser Dateien (DLL/OCX) dem entsprechen, was auch unter InstallShield Express angegeben ist.

Als Beispiel einer OCX, habe ich folgende Angaben + Flags gesetzt

Source: C:\…\Innosetup\Myapp\winsystem\comctl32.ocx; DestDir: {sys};  Flags: regserver restartreplace uninsneveruninstall sharedfile

Für die VB-Runtime:

Source: C:\…\Innosetup\Myapp\winsystem\msvbvm60.dll; DestDir: {sys}; OnlyBelowVersion: 0,6; Flags: regserver restartreplace uninsneveruninstall sharedfile onlyifdoesntexist

Die fertige Installation habe ich dann unter Windows XP (Virtual PC) sowie mutig ;) auch auf meinem Entwicklunsgrechner getestet – jeweils ohne Probleme, mit Ausnahme eines Fehlers, der aber bereits durch die Deinstallation der Installshield Express Installation aufgetreten ist. Installshield hatte zwar eine Komponente, in diesem Fall BBlistView entfernt, aber leider nicht die Registry-Keys gelöscht. Als Folge kam es dann bei der Installation mit InnoSetup zu einem Fehler. Ein einfaches Ignorieren löste das Problem aber, da die Komponente ja bereits eingetragen, also nur kopiert werden musste.

Werbung & Infos:

Aktuelle Top Aktionen bei Acer, HP, Lenovo, Microsoft, Bitdefender & Co

Angebote im Acer Store

» Acer Sommer Angebote
Bis zu 500 Euro Rabatt auf viele Notebooks, PCs und mehr bei den Acer Sommer Angeboten bis 12. Juli 2021

Acer Spezialangebote: Rabatt und Extras auf viele Acer Notebooks, Convertibles, Gaming Notebooks und PC, Monitore und mehr

Angebote im HP Store

» HP Sommer Angebote
HP Sommer Angebote: Bis zu 15% Rabatt beim Kauf von Notebooks, PCs. Dazu Zubehör mit bis zu 30% Rabatt – Bis 30. Juli 2021


Aktuelle Bitdefender Aktionen:

60% Rabatt auf Bitdefender Total Security 5 Geräte/ 1 Jahr (32 statt 79,99 Euro)

60% Rabatt auf Bitdefender Internet Security 5 Geräte/ 1 Jahr  (26 statt 64,99 Euro)

60 Rabatt auf Bitdefender Antivirus Plus 3 Geräte/ 1 Jahr (24,99 statt 39,99 Euro)

Bitdefender Premium Security für 10 Geräte / 1 Jahr für 56 Euro statt 139,99 Euro 
inklusive Unlimitiertes VPN für 10 Geräte und 1 Jahr mit GEO-IP Auswahl inklusive!

Bitdefender Internet Security Lebenslang Edition: 5 Jahre Schutz für nur für nur 89,95

Weitere aktuelle Bitdefender Angebote
» Alle Bitdefender Angebote auf einem Blick

Software Angebote in der Übersicht

Weitere Software Angebote habe ich hier gelistet

Weitere Internet Security Angebote gibt es in der Übersicht hier auf meiner Seite

 


Verwandte Themen: