cmake - 如何使用 CPACK_PACKAGE_INSTALL_REGISTRY_KEY 添加注册表项?

标签 cmake nsis cpack

我需要为 NSIS 安装程序安装一些注册表项。我正在使用 CPACK,我发现了这个命令 CPACK_PACKAGE_INSTALL_REGISTRY_KEY。互联网上没有太多文档,但我猜:

set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY
"MyReg\\\\MyKey" "${INSTALL_DIR}\\\\" 
)

或者没什么不同。

我还阅读了另一个主题:

list(APPEND CPACK_NSIS_EXTRA_INSTALL_COMMANDS " 
                InstallDirRegKey HKCU \"Software\\Test\" \"RegEntry\"
               ")

但我不明白为什么要使用最后一条命令而不是 CPACK 命令。

谢谢你的帮助

最佳答案

我对 CPack 一无所知,但我猜 CPACK_PACKAGE_INSTALL_REGISTRY_KEY 也映射到 InstallDirRegKey并且不能用于将通用值写入注册表。

尝试这样插入原始 NSIS 指令:

SET(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "
  WriteRegStr HKLM 'Software\\\\MyApp' 'MyValue' 'MyData'
  WriteRegDWORD HKLM 'Software\\\\MyApp' 'OtherValue' '4'
   ")
SET(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "
  DeleteRegKey HKLM 'Software\\\\MyApp' 
 ")

关于cmake - 如何使用 CPACK_PACKAGE_INSTALL_REGISTRY_KEY 添加注册表项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44394194/

相关文章:

cmake - 如何在 CMakeLists.txt 中禁用 CPACK_PACKAGE_VERSION_PATCH?

linker - 使用 CMake 链接静态库

即使 WITH_CUDA=ON 在 CMake 中,OpenCV 也不会使用 CUDA 构建

installation - 如何取消 NSIS 设置而不显示确认消息框?

c++ - 在 linux 上安装 nsis 失败 exitcode1

cmake - 创建 TGZ 存档时更改布局

c++ - 对 `Example::Note::~Note()' protobuf 的 undefined reference

cmake - 使用带有 Gcov 的 CMake 编译和链接时出错

NSIS - 所有用户的桌面快捷方式

windows - CMake/CPack 能否为单个项目生成多个 NSIS 安装程序?