3

我正在尝试在 Windows 7 上使用 NSIS 编译的安装程序在没有管理员权限的情况下工作。该项目使用 CMake 设置并使用 VC2010 编译。我发现我必须使用

RequestExecutionLevel user

选项。我的问题是:我必须在我的 CMakeLists.txt 中添加什么才能将此选项传递给 NSIS?我发现

set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "RequestExecutionLevel user")

在谷歌的某个地方,但是这给出了一个错误,说这个选项不能在这个部分中设置。

任何帮助是极大的赞赏

4

2 回答 2

5

@CPACK_NSIS_DEFINES@在 NSIS 模板中拥有的 CMake 版本,因此添加set(CPACK_NSIS_DEFINES "RequestExecutionLevel user")到 CMakeLists.txt 也可以完成这项工作。

尽管基于组件的安装可能需要额外的工作

于 2014-10-06T19:37:46.683 回答
2

您可以尝试以下步骤:

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

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

  2. 添加RequestExecutionLevel user到 NSIS.template.in

  3. 更新 CMakeLists.txt 中的 CMAKE_MODULE_PATH:

    list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/packaging)

然后重建你的包,看看它是否有效。

于 2012-03-31T06:50:49.933 回答