Ich verwende schon seit längerer Zeit Crystal Reports 10 mit Inno Setup, dazu hatte ich ein Skript im Internet gefunden, welches sämtliche benötigte Dateien installierte. Damals gab es von Business Objects auch noch eine Hilfedatei (Runtime.chm) welche erklährte wie man die Dateien installieren muss. Heute versuchte ich nun auf Crystal Reports 11 (XI) zu wechseln. Ich ersetzte kurzerhand alle Dateien beim alten Skript durch die neuen Dateien. Nach dem installieren jedoch wurde beim Aufrufen des Reports die Meldung Invalid TLV Record (Ungültiger TLV Datensatz) ausgegeben. Diese wurde höchstwarscheinlich aufgrund fehlender oder nicht registrierter DLL’s gerufen. Auch der Dependency Walker (auf die eingebundenen Dateien, craxdrt.dll und craxddrt.dll). Die empfohlene Variante um die Crystal Reports 11 Runtime zu installieren ist mit Merge Modules. Inno Setup unterstüzt diese jedoch nicht. Die bekannten kommerziellen Installer (InstallShield, WISE) unterstüzen zwar Merge Modules sind jedoch nicht günstig. In einem von Business Objects zur Verfügung gestellten Dokument wurde ich auf den Microsoft Visual Studio 6.0 Installer aufmerksam, welcher über das Microsoft Download Center erhältlich ist. Im genannten Dokument fand ich dann auch eine kurze Anleitung, wie ein solches MSI erstellt werden muss. Dieses MSI enthält das gesammte Merge Modul, und kann mit dem Microsoft Studio Installer leider nicht angepasst werden. Dafür wird es offiziell von Business Objects supported und ist kostenlos. Die MSI können dann auch in Inno Setup eingebunden werden:
[Files]
Source: {#BaseDir}3rdparty\crystalreports\visualstudioinstaller\Ausgabe\DISK_1\CrystalReports11.msi; DestDir: {tmp}; Flags: deleteafterinstall
[Run]
Filename: {sys}\msiexec.exe; StatusMsg: Crystal Report XI wird installiert...; Parameters: "/qn /i ""{tmp}\CrystalReport11.msi"""
[UninstallRun]
Filename: {sys}\msiexec.exe; StatusMsg: Crystal Report XI wird deinstalliert...; Parameters: /qn /uninstall {{Identifyer aus Visual Studio Installer}}
0 Comments.