Используйте cx-freeze для создания msi, который добавляет ярлык на рабочий стол

Я использую cx-freeze для создания установщика MSI для приложения Python. Как установить ссылку на приложение с рабочего стола?

Ответ 1

Чтобы создать ярлык для приложения, задайте параметры shortCutName и shortcutDir для исполняемого файла. shortcutDir может называть любое из свойств системной папки (спасибо Аарону). Например:

from cx_Freeze import *

setup(
    executables = [
        Executable(
            "MyApp.py",
            shortcutName="DTI Playlist",
            shortcutDir="DesktopFolder",
            )
        ]
    )

Вы также можете добавлять элементы в таблицу ярлыков MSI. Это позволяет создавать несколько ярлыков и устанавливать рабочий каталог (настройка ярлыка "запускать в").

from cx_Freeze import *

# http://msdn.microsoft.com/en-us/library/windows/desktop/aa371847(v=vs.85).aspx
shortcut_table = [
    ("DesktopShortcut",        # Shortcut
     "DesktopFolder",          # Directory_
     "DTI Playlist",           # Name
     "TARGETDIR",              # Component_
     "[TARGETDIR]playlist.exe",# Target
     None,                     # Arguments
     None,                     # Description
     None,                     # Hotkey
     None,                     # Icon
     None,                     # IconIndex
     None,                     # ShowCmd
     'TARGETDIR'               # WkDir
     )
    ]

# Now create the table dictionary
msi_data = {"Shortcut": shortcut_table}

# Change some default MSI options and specify the use of the above defined tables
bdist_msi_options = {'data': msi_data}

setup(
    options = {
        "bdist_msi": bdist_msi_options,
    },
    executables = [
        Executable(
            "MyApp.py",
            )
        ]
    )