Seite 1 von 1

[GELÖST] Erstellung des Sphinx v5 Softwarepakets

Veröffentlicht: 14. Dez. 2017 - 09:38 Uhr
von olaplanche
Guten Morgen,

Ich eröffne einen neuen Thread, um mein Sphinx-Softwareinstallationspaket fertigzustellen.

Ich habe im Thread zum Thema „Zeichenkodierungsfehler“ eine einfachere, unbeaufsichtigte Installationsmethode gefunden als meinen ursprünglichen Ansatz. Man erstellt einfach eine license.dat-Datei mit den korrekten Informationen im Stammverzeichnis des Installationsordners.
Als Nächstes starten wir die Installation mit folgendem Befehl: install.exe /s

Die Installation funktioniert außerhalb von wapt problemlos; sobald das Paket erstellt ist, wird die Installation zwar fortgesetzt, jedoch ohne die Lizenz.
Bei genauerer Betrachtung stelle ich fest, dass der temporäre Ordner für das Paket gelöscht wird, sobald die Datei install.exe ausgeführt wird.
Ich nehme daher an, dass das System keine Zeit hat, die Lizenzdatei zu lesen; ist es möglich, das Löschen des temporären Ordners zu verzögern?

Nur zur Info, hier ist mein Code:

Code: Alle auswählen

# -*- coding: utf-8 -*-
from setuphelpers import *

uninstallkey = []

def install():
    print('installing wapt-sphinxv5')
    install_exe_if_needed("SphinxV5\Install.exe",'/s')

def uninstall():
    run(r'"C:\SphinxV5\licence\UNWISE.EXE" /s C:\SphinxV5\licence\install.log')
    remove_tree(r'C:\SphinxV5')
Zu Ihrer Information:
- Installierte WAPT-Version: 1.3.13
- Server-Betriebssystem: Debian Jessie
- Betriebssystem des Administrations-/Paketerstellungsrechners: Windows 10

DANKE

Betreff: Erstellung des Sphinx v5 Softwarepakets

Veröffentlicht: 19. Dez. 2017 - 18:57 Uhr
von dcardon
Guten Abend Olaplanche,

das von WAPT während der Paketinstallation erstellte temporäre Verzeichnis wird nach Ausführung der Funktion `install()` gelöscht. Daher ist die Datei verfügbar, wenn `SphinxV5\Install.exe` ausgeführt wird.

Sie müssen prüfen, ob die Datendatei im Paketstammverzeichnis (`basedir`) oder im SphinxV5-Verzeichnis (dem Verzeichnis der Binärdatei) abgelegt werden soll.

Beachten Sie außerdem die Backslashes; Sie müssen diese entweder verdoppeln oder ein 'r'' vor die Zeichenkette setzen, z. B. `r'Install\Sphinxv5.exe'`.

Betreff: Erstellung des Sphinx v5 Softwarepakets

Veröffentlicht: 20. Dez. 2017 - 09:05 Uhr
von olaplanche
Hallo und vielen Dank

Die Lizenzdatei muss sich im selben Ordner wie die Binärdatei befinden.
Ich habe gerade einen Test durchgeführt, um meine Hypothese mit diesem neuen Code zu bestätigen:

Code: Alle auswählen

# -*- coding: utf-8 -*-
from setuphelpers import *

uninstallkey = []

def install():
    print('installing wapt-sphinxv5')
    mkdirs(r'c:\temp')
    copytree2('SphinxV5',r'c:\temp\SphinxV5')
    install_exe_if_needed(r'c:\temp\SphinxV5\Install.exe','/s')

def uninstall():
    run(r'"C:\SphinxV5\licence\UNWISE.EXE" /s C:\SphinxV5\licence\install.log')
    remove_tree(r'C:\SphinxV5')
Auf diese Weise funktioniert die Aktivierung korrekt. Wenn ich die Installation vom Basisverzeichnis aus starten lasse, sehe ich deutlich, dass nach dem Ausführen von install.exe einige Dateien im Basisverzeichnis gelöscht werden (wahrscheinlich diejenigen, die nicht vom Programm gesperrt sind), darunter auch die Lizenzdatei. Folglich kann das Programm, das später darauf zugreifen soll, sie nicht finden.

Betreff: Erstellung des Sphinx v5 Softwarepakets

Veröffentlicht: 14. Dez. 2018 - 13:37 Uhr
von olaplanche
Paket fertiggestellt!
Hier ist die endgültige Version des Codes:

Code: Alle auswählen

# -*- coding: utf-8 -*-
from setuphelpers import *
import time

uninstallkey = []

def install():
    print('installing wapt-sphinxv5')
    install_exe_if_needed("SphinxV5\Install.exe","/s")
    time.sleep(60)
    killalltasks('Licence.exe')

def uninstall():
    run(r'"C:\SphinxV5\licence\UNWISE.EXE" /s C:\SphinxV5\licence\install.log')
    remove_tree(r'C:\SphinxV5')