Значок быстрого доступа Python cx-freeze

Я использую cx-freeze, чтобы испортить приложение, создав установочный файл msi. В скрипте setup.py указываю ярлык, который нужно разместить на рабочем столе. Однако значок ярлыка пуст. В setup.py содержится следующий код. Что я делаю неправильно?

import ...
....
shortcut_table = [
    ("DesktopShortcut",                                             # Shortcut
     "DesktopFolder",                                               # Directory_
     "PhotonFileEditor",                                            # Name
     "TARGETDIR",                                                   # Component_
     "[TARGETDIR]\PhotonEditor.exe",                                # Target
     None,                                                          # Arguments
     None,                                                          # Description
     None,                                                          # Hotkey
     "[TARGETDIR]photonsters.ico",                                  # Icon
     0,                                                             # IconIndex
     None,                                                          # ShowCmd
     "TARGETDIR",                                                   # WkDir
     )
]


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

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

....

person Nard    schedule 27.07.2018    source источник
comment
Не уверен. Но так как прошло 2 дня и нет ответов, вы проверили, что вам не нужна обратная косая черта в этой строке? [ЦЕЛЬНЫЙ КАТАЛОГ]\photonsters.ico. Кроме того, поле «Значок» на самом деле является «Значок_» в документации установщика Windows, т. Е. Это внешний ключ в таблицу с именем «Значок». docs.microsoft.com/en-us/windows/desktop/ msi/иконка-таблица   -  person Captain_Planet    schedule 30.07.2018


Ответы (2)


Спасибо, это решило мою проблему! Фрагмент моего кода:

Ярлык:

shortcut_table = [
("DesktopShortcut", # Shortcut
 "DesktopFolder",   # Directory_
 "PhotonFileEditor",# Name
 "TARGETDIR",   # Component_
 "[TARGETDIR]\PhotonEditor.exe", # Target
 None,              # Arguments
 None,              # Description
 None,              # Hotkey
 "",                # Icon (Use 
 0,                 # IconIndex
 None,              # ShowCmd
 "TARGETDIR",                   # WkDir
 )
]

Настраивать:

setup (  name = "PhotonFileEditor",
         version = "0.1",
         author= "Photonsters",
         url="https://github.com/Photonsters",
         description = "Photon File Editor",
         options = {"build_exe": build_exe_options,"bdist_msi": bdist_msi_options},
         executables = [Executable(script="PhotonEditor.py",       
         base=base,icon="PhotonEditor.ico",)]
 )
person Nard    schedule 08.08.2018

  1. Вы пытались:

    • add icon parameter to your Executable?
    • удалить обратную косую черту в Target вашего shortcut_table и удалить записи Iconи IconIndex?

      import ...
      
      ....
      shortcut_table = [
          ("DesktopShortcut",                                             # Shortcut
           "DesktopFolder",                                               # Directory_
           "PhotonFileEditor",                                            # Name
           "TARGETDIR",                                                   # Component_
           "[TARGETDIR]PhotonEditor.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}
      #msi_data = {"Shortcut": shortcut_table, "Icon": icon_table}
      
      # Change some default MSI options and specify the use of the above defined tables
      bdist_msi_options = {'data': msi_data}
      
      executables = [Executable(....,
                                icon='photonsters.ico')]
      
      ....
      
      setup(....,
            executables=executables)
      
  2. Вы проверили, что файл значка photonsters.ico присутствует в каталоге build_dir после этапа сборки?

person jpeg    schedule 06.08.2018