2011-12-27 12 views
4

私たちの製品のインストーラを実装しました。 インストーラには管理者権限が必要です。したがって、セットアップブートストラップとマニフェストファイル(推奨here)を使用して、UACを有効にしたWindowsマシンでこれらの権限を取得しました。インストールとアンインストールはうまくいっています - ユーザーに許可が求められ、インストーラは必要な処理を行います。インストールの変更でUACのアクセス権が要求されない

しかし、あなたは、コントロールパネルプログラムと機能を実行し、インストールされたプログラムのために*「変更」を選択した場合エラーはインストーラが管理者権限を必要としていることを伝える、(インストーラLaunchConditionsからカスタム、)が発生します。そのようなケースでは許可を求める方法は見つけられません.Windowsは単にMSIファイルを実行し、必要なアクセス許可については何も知らないだけです。

さらに奇妙なのは修復機能です。それは許可を求めますが、SetupBootstrapperを使用してインストール中に許可されたアクションを実行できません。

私は同様の問題hereが見つかりました:

をしかし、提案されたソリューションは、我々の場合には受け入れられません。

変更機能のための唯一の回避策は今、常にSetupBootstrapperを使用するとプログラムと機能メニューを使用していないですが、それは非常にユーザーフレンドリーではありませんし、彼/彼女のハード上でインストーラを保つためにユーザーを強制的にドライブ。

誰かが助言してくれましたか?

PS:私は、インストーラを作成するためのWiXのを使用するので、WiXのソリューションを聞いて素晴らしいことだが、私はだけMSIの仕様上、それはインストーラ作成言語に依存しないことをかなり確信しています。

答えて

4

どのような操作が失敗していますか?インストールに追加したアクションの場合は、Impersonate="no"Execute="deferred"(または"commit"または"rollback")と定義され、InstallInitializeInstallFinalizeの間のどこかに配置されていることを確認してください。

+0

インストールには管理者のアクセス許可が必要です。そして、アクションではなくlaunchConditionsが失敗しています - プログラムと機能を実行している場合、インストーラはその権限を持っていません –

+0

さて、このシナリオでは失敗する条件は何ですか?なぜあなたはそれを変更できませんか?マイクロソフトは、UACのシステムでは、特権がほとんど常に真であるべきだと明確に考えていました。 –

+0

条件が特権付きプロパティをチェックします。もちろん私はそれを変更することができますが、それは問題の修正ではありません - 単に別の問題を作成するだけです。問題の原因は、マニフェストファイルとブートストラップを使用しない場合、msiがNOT Privilegedとして実行されることです。また、プログラムと機能>変更/修復メニューからは使用できません。 –

関連する問題