2013-03-31 153 views
7

我正在使用cx-freeze爲Python應用程序創建MSI安裝程序。我如何從桌面安裝指向應用程序的鏈接?使用cx-freeze創建一個向桌面添加快捷方式的msi

+0

可能重複http://stackoverflow.com/questions/15733405/use-cx-freeze-to-create-an- msi-installer-that-installs-a-child-installer) –

+2

問題是不同的。在這個問題中,我想創建一個桌面圖標。另一個問題是關於捆綁幾個MSI安裝程序。 – joshuanapoli

回答

19

要創建一個快捷方式到應用程序,給shortCutNameshortcutDir選項可執行文件。 快捷方式目錄可以命名爲System Folder Properties(謝謝Aaron)。例如:

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", 
      ) 
     ] 
    ) 
[使用CX-凍結創建一個MSI安裝程序能安裝兒童安裝程序(的
+0

你知道這是如何與系統管理員去安裝這樣的應用程序?他們不會獲得快捷方式的選項,還是他們會? – PascalVKooten

+1

如果設置了ALLUSERS屬性,則將爲所有用戶安裝快捷方式。 – joshuanapoli

+0

你可以在哪裏設置ALLUSERS屬性?你如何指定一個圖標? –

相關問題