Der MSI-Upgrade-Code ist ein eindeutiger Code zum Verwalten Ihrer Anwendung. Wenn dies nicht angegeben ist, müssen Sie das Paket bei jedem Upgrade manuell neu installieren.
Führen Sie den folgenden Befehl im Python-Interpreter aus.
import uuid str(uuid.uuid3(uuid.NAMESPACE_DNS, 'appname.orgname.org')).upper()
Dadurch wird eine eindeutige ID wie "3F2504E0-4F89-11D3-9A0C-0305E82C3301" generiert. Notieren Sie sich diese.
setup.py
#Bewerbungs informationen
name = 'memopad'
version = '1.0.0'
author = 'example'
author_email = '[email protected]'
url = 'http://example.xxx'
description = 'Text Editor'
#Geben Sie hier die GUID an (grundsätzlich sollte sie nicht geändert werden).
upgrade_code = '{3F2504E0-4F89-11D3-9A0C-0305E82C3301}'
#Wechseln Sie unter 64-Bit-Windows den Installationsordner
# ProgramFiles(64)Der Ordner scheint durch das eigentliche Verzeichnis auf der MSI-Seite ersetzt zu sein
programfiles_dir = 'ProgramFiles64Folder' if distutils.util.get_platform() == 'win-amd64' else 'ProgramFilesFolder'
#Optionen zur Verwendung mit dem Befehl build unter Windows
build_exe_options = {
'packages': ['os'],
'excludes': ['tkinter'], #Schließen Sie tkinter aus, da es nicht verwendet wird
'includes': ['PySide.QtCore', 'PySide.QtGui', 'gui', 'commands'],
'include_files': ['img/', 'lang/', 'license/'],
'include_msvcr': True, #Da PySide verwendet wird, kann es nur gestartet werden, wenn die C-Laufzeit von Microsoft enthalten ist.
'compressed' : True
}
# bdist_Optionen zur Verwendung mit dem Befehl msi
bdist_msi_options = {
'upgrade_code': upgrade_code,
'add_to_path': False,
'initial_target_dir': '[%s]\%s\%s' % (programfiles_dir, author, name)
}
options = {
'build_exe': build_exe_options,
'bdist_msi': bdist_msi_options
}
#exe Informationen
base = 'Win32GUI' if sys.platform == 'win32' else None
icon = 'img/app_icon.ico'
mainexe = Executable(
'main.py',
targetName = 'Memopad.exe',
base = base,
icon = icon,
copyDependentFiles = True
)
setup(
name=name,
version=version,
author=author,
author_email=author_email,
url=url,
description=description,
options=options,
executables=[mainexe]
)
Wenn Sie es so erstellen, wie es ist, besteht es die Validierungsprüfung von Orca (Microsofts MSI-Editor) nicht. Ändern Sie daher "cx_Freeze / windist.py" in Site-Paketen. Fügen Sie der Requisitenliste in Zeile 230 den folgenden Taple hinzu.
windist.py
('SecureCustomProperties', 'REMOVEOLDVERSION;REMOVENEWVERSION')
python setup.py bdist_msi
Lauf einfach.
exe und msi werden erstellt.
Bitte beachten Sie, dass wenn Sie den Upgrade-Code ändern, dieser nicht als dasselbe Paket betrachtet wird und Sie die Pakete nicht ordnungsgemäß verwalten können.
Beachten Sie auch, dass Sie während der Installation möglicherweise ohne digitale Signatur gewarnt werden.
Öffnen Sie die von Orca generierte MSI und sehen Sie sich die Eigenschaftentabelle an. Wenn die zuvor angegebene GUID in der UpgradeCode-Eigenschaft angezeigt wird, sollte es kein Problem geben.
distutils setup script — cx_Freeze 5.0 documentation Entwicklerkurs-Windows-Installationsprogramm