如何在 CPACK 和 NSIS 中为文本文件添加开始菜单条目

Posted

技术标签:

【中文标题】如何在 CPACK 和 NSIS 中为文本文件添加开始菜单条目【英文标题】:How do I add a start menu entry for a text file in CPACK ans NSIS 【发布时间】:2013-02-12 11:41:33 【问题描述】:

我想在开始菜单中输入release_notes.txtrelease_notes.html。当我在菜单中选择 release_notes 条目时,文本文件将出现在记事本中或 html 填充在 Web 浏览器中。但我不知道如何在CMakeLists.txt 中编写命令来做到这一点。

【问题讨论】:

至少追溯到 Win2000,MS 指南告诉您不要为帮助/卸载程序/等创建开始菜单条目... 【参考方案1】:

你在用CPACK_NSIS_MENU_LINKS吗?

或者你可以使用CPACK_NSIS_EXTRA_INSTALL_COMMANDS...

【讨论】:

CPACK_NSIS_MENU_LINKS 解决了这个问题。我还发现它记录在 CPackNSIS.cmake 中。【参考方案2】:

不确定当前版本的 CMake 是否提供更简单/不同的方式,但这就是我们所做的:

SET( CPACK_NSIS_CREATE_ICONS_EXTRA 
"
CreateShortcut \\\"$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\SDK Documentation.lnk\\\" \\\"$INSTDIR\\\\doc\\\\html\\\\index.html\\\"
" )

SET( CPACK_NSIS_DELETE_ICONS_EXTRA 
"
Delete \\\"$SMPROGRAMS\\\\$MUI_TEMP\\\\SDK Documentation.lnk\\\"
" )

【讨论】:

【参考方案3】:

类似于 Johannes 的回答,CPACK_NSIS_CREATE_ICONS_EXTRACPACK_NSIS_DELETE_ICONS_EXTRA 是管理快捷方式(开始菜单、桌面等)的一种灵活方式,包括在以下情况下添加命令行参数必需的。 This short article 提供了更多信息。它对删除链接使用略有不同的路径,并解释了原因。它还包括指向 NSIS 文档的链接,以显示您可以创建快捷方式的其他位置等。

【讨论】:

以上是关于如何在 CPACK 和 NSIS 中为文本文件添加开始菜单条目的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 CPACK_NSIS_WELCOME_TITLE 和 CPACK_NSIS_FINISH_TITLE?

CPack:如何执行多个 CPACK_NSIS_EXTRA_INSTALL_COMMANDS?

如何通过 CMake/CPack 在 NSIS 中设置向导图像?

如何在重新安装期间显示带有 CPack NSIS 的卸载程序窗口?

使用 CPACK 自定义 NSIS 安装程序

如何在 NSIS 安装(CMake)中设置图标