2011-12-15 7 views
2

Windows 7でNSISでコンパイルしたインストーラを管理者権限なしで使用しようとしています。プロジェクトはCMakeでセットアップされ、VC2010でコンパイルされます。私は使用する必要があることを理解しました。NSakeのRequestExecutionLevelオプションをCMakeLists.txtに追加するには

RequestExecutionLevel user 

オプションです。私の質問は:私はこのオプションをNSISに渡すためにCMakeLists.txtに入れなければならないものは何ですか?私はGoogleで

set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "RequestExecutionLevel user") 

どこかを見つけたが、それは、このオプションは、このセクションで設定することができないと言って、エラーが発生します。

すべてのヘルプは大幅

+1

私はCMakeは分かりませんが、NSISではRequestExecutionLevelがインストーラ属性です(このセクションでは無効です)。したがって、セクションや関数を除いてスクリプトのどこにでも置くことができます。それですか? – zbynour

答えて

2

を高く評価しているあなたは、次の手順を試すことができます:

  1. コピーNSIS.template.inプロジェクトディレクトリに、例えば"パッケージ化" という名前のサブディレクトリ:

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

  2. はCMakeLists.txtで更新CMAKE_MODULE_PATH

  3. NSIS.template.in

    RequestExecutionLevel userを追加します。

    list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/packaging)

次に、パッケージを再構築して動作するか確認します。