如何使用 CPACK_PACKAGE_INSTALL_REGISTRY_KEY 添加注册表项?
Posted
技术标签:
【中文标题】如何使用 CPACK_PACKAGE_INSTALL_REGISTRY_KEY 添加注册表项?【英文标题】:How add registry keys with CPACK_PACKAGE_INSTALL_REGISTRY_KEY? 【发布时间】:2017-06-06 15:33:35 【问题描述】:我需要为 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 命令。
感谢您的帮助
【问题讨论】:
InstallDirRegKey 只是根据注册表中的值设置默认的 $InstDir 路径。 【参考方案1】:我对 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'
")
【讨论】:
以上是关于如何使用 CPACK_PACKAGE_INSTALL_REGISTRY_KEY 添加注册表项?的主要内容,如果未能解决你的问题,请参考以下文章
如何在自动布局中使用约束标识符以及如何使用标识符更改约束? [迅速]
如何使用 AngularJS 的 ng-model 创建一个数组以及如何使用 jquery 提交?