Seite 1 von 1

[GELÖST] Problem bei der Paketerstellung: PDF24

Veröffentlicht: 24. Oktober 2018 - 03:59 Uhr
von DominiqueG
Hallo zusammen

Nachdem ich das Problem immer und immer wieder in Gedanken durchgespielt habe, habe ich immer noch keine Lösung gefunden.

Ich möchte ein Wapt-Paket erstellen für PDF24 Bei der MSI-Installation erhalte ich immer wieder einen Fehler bezüglich der Deinstallationsschlüsselversion:

Code: Alle auswählen

2018-10-23 11:14:03,700 CRITICAL Fatal error in install script: EWaptSetupException: Fatal error : MSI pdf24-creator-8.6.1.msi has been installed and the uninstall key {E6280618-D2EA-48D8-9CCA-D50BCCDBCD62} found but version is not good:
Traceback (most recent call last):
  File "C:\Program Files (x86)\wapt\common.py", line 3512, in install_wapt
    exitstatus = setup.install()
  File "c:\waptdev\ire-pdf24-creator-wapt\setup.py", line 53, in install
    install_msi_if_needed('pdf24-creator-%s.msi' %versionsoft, 'AUTOUPDATE=[No] DESKTOPICONS=[No] FAXPRINTER=[No] /[QN]',get_version=getversionpdf24, killbefore=['pdf24.exe'])
  File "C:\Program Files (x86)\wapt\common.py", line 3471, in new_func
    return func(*args,**kwargs)
  File "C:\Program Files (x86)\wapt\setuphelpers.py", line 3917, in install_msi_if_needed
    error('MSI %s has been installed and the uninstall key %s found but version is not good' % (msi,key))
  File "C:\Program Files (x86)\wapt\setuphelpers.py", line 4305, in error
    raise EWaptSetupException(u'Fatal error : %s' % reason)
EWaptSetupException: Fatal error : MSI pdf24-creator-8.6.1.msi has been installed and the uninstall key {E6280618-D2EA-48D8-9CCA-D50BCCDBCD62} found but version is not good

Die Versionsnummer und der Deinstallationsschlüssel werden jedoch in den MSI-Eigenschaften angezeigt:

Code: Alle auswählen

version_msi = get_msi_properties('pdf24-creator-%s.msi' %versionsoft)
print(version_msi)
    
    ## me retourne :
{u'PRIMARYFOLDER': u'INSTALLDIR', u'UpgradeCode': u'{8D2DF301-CE53-4939-81C2-D659E7B857BE}', u'WixUI_Mode': u'FeatureTree', u'FAXPRINTER': u'Yes', u'SecureCustomProperties': u'INSTALLDIR;PREVIOUSVERSIONSINSTALLED', u'AUTOUPDATE': u'No', u'ALLUSERS': u'1', u'ARPPRODUCTICON': u'ProductIcon.exe', u'DefaultUIFont': u'WixUI_Font_Normal', u'ProductLanguage': u'1033', u'ARPHELPLINK': u'http://www.pdf24.org', u'PROGRAMMENU': u'Yes', u'INSTALLLEVEL': u'3', u'Manufacturer': u'www.pdf24.org', u'ProductCode': u'{E6280618-D2EA-48D8-9CCA-D50BCCDBCD62}', u'ARPURLUPDATEINFO': u'http://www.pdf24.org', u'ProductVersion': u'8.6.1', u'ErrorDialog': u'ErrorDlg', u'EXEUNINSTALL': u'False', u'WixUIRMOption': u'UseRM', u'UPDATEMODE': u'1', u'DESKTOPICONS': u'Yes', u'ProductName': u'PDF24 Creator', u'InstallMode': u'Complete'}


 wapt-get list-registry pdf24
 
     ## me retourne :
     
UninstallKey                           Software        Version      Uninstallstring
------------------------------------------------------------------------------------------------------------------------
{E6280618-D2EA-48D8-9CCA-D50BCCDBCD62} PDF24 Creator   8.6.1        MsiExec.exe /I{E6280618-D2EA-48D8-9CCA-D50BCCDBCD62}
Was ich bereits versucht habe:

* Suchen Sie in der Wapt-Dokumentation nach einer Lösung: https://www.wapt.fr/fr/doc/Frequent-pro ... s-not-good

* Ich habe versucht, die Version im Befehl zu erzwingen

Code: Alle auswählen

    versionsoft = control['version'].split('-',1)[0]
    def getversionpdf24(key):
        return get_msi_properties('pdf24-creator-%s.msi' %versionsoft)['ProductVersion']
    install_msi_if_needed('pdf24-creator-%s.msi' %versionsoft, 'AUTOUPDATE=[No] DESKTOPICONS=[No] FAXPRINTER=[No] /[QN]',get_version=getversionpdf24, killbefore=['pdf24.exe'])

Hat irgendjemand eine Idee?
Vielen Dank im Voraus


System:
* Wapt-Server Windows 7 64-Bit
* Rechner zur Paketerstellung: Win7 64-Bit / pyscripter

PS1: Argumente für das Installationsprogramm mit der MSI-Datei: https://help.pdf24.org/en/forums/topic/ ... -arguments
https://help.pdf24.org/en/forums/topic/ ... -arguments

PS: Alternativ gibt es zwar PDF Creator im WAPT-Repository, aber es nervt mich, weil es mich bei jedem Druckvorgang zur Installation eines weiteren Programms auffordert. Ich persönlich finde PDF24 übersichtlicher

PS3: Ich habe versucht, mich bei der Entwicklung der Funktion `update_package()` von anderen Skripten inspirieren zu lassen, bin aber nicht fündig geworden. Falls jemand Ideen hat, die mir weiterhelfen könnten, wäre ich sehr dankbar :D

Betreff: Problem beim Erstellen des Pakets: PDF24

Veröffentlicht: 24. Oktober 2018 - 15:08 Uhr
von dcardon
Hallo DominiqueG,
DominiqueG schrieb: 24. Okt. 2018 - 03:59

Code: Alle auswählen

    versionsoft = control['version'].split('-',1)[0]
    def getversionpdf24(key):
        return get_msi_properties('pdf24-creator-%s.msi' %versionsoft)['ProductVersion']
    install_msi_if_needed('pdf24-creator-%s.msi' %versionsoft, 'AUTOUPDATE=[No] DESKTOPICONS=[No] FAXPRINTER=[No] /[QN]',get_version=getversionpdf24, killbefore=['pdf24.exe'])
In der Zeile `install_msi_if_needed` ist „properties“ eine benannte Variable. Wird „properties“ weggelassen, wird sie zu einer Positionsvariablen und ersetzt die min_version-Nummer. Und es ist bekannt, dass AUTOUPDATE > 8.6.1...

Code: Alle auswählen

install_msi_if_needed('pdf24-creator-8.6.1.msi', properties={'AUTOUPDATE':'[No]','DESKTOPICONS':'No','FAXPRINTER':'[No]'})
Wenn Sie mehrere interessante Pakete haben, können Sie, wie Simon mit den Web-Ants, Ihr eigenes Repository erstellen. Sie benötigen lediglich einen Webserver und die Möglichkeit, eine Paketdatei zu generieren. Zum Generieren dieser Datei benötigen Sie das Tool `wapt-scanpackages.py`. Früher war es im Paket `tis-waptrepo` enthalten, jetzt ist es direkt im Paket `tis-waptserver` enthalten. Ein Blick darauf lohnt sich.

Aufrichtig,

Denis

Betreff: [GELÖST] Problem bei der Paketerstellung: PDF24

Veröffentlicht: 26. Oktober 2018 - 06:43 Uhr
von DominiqueG
Hallo @dcardon

Nilkel, es funktioniert super, :D vielen Dank!

Was den Code angeht, werde ich versuchen, das umzusetzen, aber ich denke, ich werde das Skript einfach in einem Git-Repository veröffentlichen.

Zur Erklärung: Ich arbeite auf einem Schiff, das Unterseekabel weltweit verlegt. Diese Kabel werden, sobald sie in Betrieb sind, problemlos über 1 Terabyte pro Sekunde und Faserpaar übertragen können. An Bord haben wir jedoch nur eine sehr langsame Satelliten-Internetverbindung mit etwa 256 kbit/s für rund 30 Arbeitsstationen.

Das ist unglaublich langsam. Deshalb ist die Verwaltung von Programmupdates (zusätzlich zu deren zentralisierter Installation) eine echte Herausforderung, und Ihre Lösung ist besonders interessant.

Momentan überarbeite ich die Pakete, sodass sie sowohl 64-Bit- als auch 32-Bit-Installationsprogramme enthalten. Sobald ich mehr weiß, teile ich alles.

Falls jemand eine Möglichkeit findet, eine `update()`-Funktion für dieses Paket zu erstellen, wäre ich daran interessiert.

Der Download-Link ist einfach: https://www.pdf24.org/products/pdf-crea ... reator.msi.
Ich habe jedoch Probleme, die Überprüfung auf eine neue Version vor dem Download einzurichten.

Mit freundlichen Grüßen,
Dominique