2010-01-20 80 views
2

有什麼辦法可以告訴NSIS不要覆蓋我的開始菜單快捷方式。我不希望它覆蓋的原因是,用戶的命令行選項在升級到新版本時不會被清除。我試過這個無濟於事:NSIS覆蓋快捷方式

Section -AdditionalIcons 
    SetOverwrite off 
    CreateDirectory "${START_MENU_DIR}" 
    CreateShortCut "${START_MENU_LNK}" "$INSTDIR\${PRODUCT_NAME}.exe" 
SectionEnd 

回答

3

爲什麼不能用IfFileExists檢查?

如果您想全力以赴,可以更新路徑和工作目錄,但保留參數和圖標,但要做到這一點,您必須自行調用IShellLink COM接口(使用系統插件或自定義插件/應用)

+0

是謝謝你。我昨天晚上才意識到這一點。它效果很好。我把一些示例代碼作爲另一個答案。 – 2010-01-21 18:25:03

1

這裏是工作的例子:

Section -AdditionalIcons 

    CreateDirectory "${START_MENU_DIR}" 
    IfFileExists "${START_MENU_LNK}" SkipShortcut 
    CreateShortCut "${START_MENU_LNK}" "$INSTDIR\${PRODUCT_NAME}.exe" 

SkipShortcut: 

SectionEnd