我试图在Windows 7上使用NSIS编译的安装程序在没有管理员权限的情况下工作。该项目使用CMake建立并使用VC2010编译。我发现我必须使用
RequestExecutionLevel user
选项。我的问题是:我需要将什么内容放入我的CMakeLists.txt以将此选项传递给NSIS?我找到了
set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "RequestExecutionLevel user")
在谷歌的某个地方,但这会出错,并说此选项无法在此部分中设置。
非常感谢任何帮助
答案 0 :(得分:4)
我拥有的CMake版本在NSIS模板中有@CPACK_NSIS_DEFINES@
,因此将set(CPACK_NSIS_DEFINES "RequestExecutionLevel user")
添加到CMakeLists.txt也可以完成这项工作。
答案 1 :(得分:2)
您可以尝试以下步骤:
将NSIS.template.in复制到您的项目目录,例如一个名为“packaging”的子目录:
xcopy \cmake-install-path\modules\share\cmake-xxx\Modules\NSIS.template.in \your-project-directory\packaging\
将RequestExecutionLevel user
添加到NSIS.template.in
在CMakeLists.txt中更新CMAKE_MODULE_PATH:
list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/packaging)
然后重建你的包以查看它是否有效。