Windows 7 如何将NSIS的RequestExecutionLevel选项添加到CMakeLists.txt

Windows 7 如何将NSIS的RequestExecutionLevel选项添加到CMakeLists.txt,windows-7,cmake,nsis,cpack,Windows 7,Cmake,Nsis,Cpack,我正在尝试让在Windows7上使用NSIS编译的安装程序在没有管理员权限的情况下运行。该项目由CMake建立,并使用VC2010编译。我发现我必须使用 RequestExecutionLevel user 选择权。我的问题是:我必须在CMakeLists.txt中输入什么才能将此选项传递给NSIS?我发现 set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "RequestExecutionLevel user") 在谷歌上的某个地方,但这给出了一个错误,说这个选项

我正在尝试让在Windows7上使用NSIS编译的安装程序在没有管理员权限的情况下运行。该项目由CMake建立,并使用VC2010编译。我发现我必须使用

RequestExecutionLevel user
选择权。我的问题是:我必须在CMakeLists.txt中输入什么才能将此选项传递给NSIS?我发现

set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "RequestExecutionLevel user")
在谷歌上的某个地方,但这给出了一个错误,说这个选项不能在本节中设置


非常感谢您的帮助

您可以尝试以下步骤:

  • 将NSIS.template.in复制到项目目录,例如名为“packaging”的子目录:

    xcopy\cmake install path\modules\share\cmake xxx\modules\NSIS.template.in\your project directory\packaging\

  • RequestExecutionLevel用户添加到NSIS.template.in

  • 更新CMakeLists.txt中的CMAKE_模块_路径:

    列表(附加CMAKE\u模块\u路径${CMAKE\u源目录}/打包)


  • 然后重新构建您的包,看看它是否有效。

    我拥有的CMake版本在NSIS模板中有
    @CPACK\u NSIS\u DEFINES@
    ,因此将
    集合(CPACK\u NSIS\u DEFINES“RequestExecutionLevel user”)
    添加到CMakeLists.txt也可以完成这项工作


    虽然。

    我不知道CMake,但在NSIS中,RequestExecutionLevel是installer属性(在本节中无效)。因此,您可以将其放在脚本中除节或函数之外的任何位置。是这样吗?