2014-03-28 17 views
0

我創建了一個窗口應用程序,我需要創建setup.For創建安裝程序我使用NSIS。 我寫腳本來創建其上桌面和菜單星創建快捷的安裝文件現在我需要嵌入一個圖標shortcut.Code如下:無法在快捷方式上嵌入圖標?

Function "CREATE" 
    createShortCut "$SMPROGRAMS\lnkname.lnk" "$DESKTOP\Application.exe" "ADC" "$DESKTOP\icon.ico" 0 
    createShortCut "$DESKTOP\lnkname.lnk" "$DESKTOP\ApplicationMDMO\ApplicationMDMO\bin\debug\Application.exe" "ADC" "$DESKTOP\icon.ico" 0 
FunctionEnd 

現在,我創建了一個卸載程序此安裝程序。在此卸載程序中,我將刪除由安裝程序安裝的快捷方式文件和應用程序文件。

Function "Uninstall" 
    Delete "$INSTDIR\*.*" 
    Delete "$DESKTOP\lnkname.lnk" 
    Delete "$SMPROGRAMS\lnkname.lnk" 
FunctionEnd 

問題:

  • 當我試圖刪除它們在桌面快捷方式和所有程序,除非我添加此代碼的所有程序快捷方式不會被刪除。

    RequestExecutionLevel admin //at the beginning 
    
        SetShellVarContext all // at the section 
    

    但是當我添加這些到行圖標消失

  • 當我排除在外的「所有程序」寫在上面的代碼快捷方式的代碼沒有清除。

+0

你甚至沒有告訴我們如何創建快捷方式。你能否發佈一個完整的腳本的最小版本來重現問題? – Anders

+0

@安德斯感謝您的評論。我分享了一些信息。 –

回答

1

當使用SetShellVarContext all路徑$DESKTOP解析爲可能會發生變化,如果你有與UAC等

提升我假設你是不是真的在安裝應用程序.exe和用戶桌面上的其他文件?如果將.exe和$ProgramFiles下的某處。ICO它應該工作...

InstallDir "$ProgramFiles\MyApp" 

Section 
SetShellVarContext all 
SetOutPath "$InstDir" 
File myapp.exe 
File myapp.ico 
CreateShortcut "$DESKTOP\myapp.lnk" "$InstDir\myapp.exe" "" "$InstDir\myapp.ico" 0 
SectionEnd