NSIS覆盖快捷方式

NSIS覆盖快捷方式,nsis,Nsis,有没有办法告诉NSIS不要覆盖我的“开始”菜单快捷方式。我不想让它覆盖的原因是,当用户升级到新版本时,他们的命令行选项不会被清除。我试过了,但没有用: Section -AdditionalIcons SetOverwrite off CreateDirectory "${START_MENU_DIR}" CreateShortCut "${START_MENU_LNK}" "$INSTDIR\${PRODUCT_NAME}.exe" SectionEnd 你为什么不能直接和我核

有没有办法告诉NSIS不要覆盖我的“开始”菜单快捷方式。我不想让它覆盖的原因是,当用户升级到新版本时,他们的命令行选项不会被清除。我试过了,但没有用:

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

你为什么不能直接和我核实一下


如果您想全力以赴,您可以更新路径和工作目录,但保留参数和图标,但要做到这一点,您必须自己调用IShellLink COM接口(使用系统插件或自定义插件/应用)

以下是一个有效的示例:

Section -AdditionalIcons

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

SkipShortcut:

SectionEnd

是的,谢谢。我昨晚才意识到。它工作得很好。我把一些示例代码作为另一个答案。