5

いくつかのレジストリ キー HKEY LOCAL_MACHINE を設定する CustomAction があります。これは、アクションを「延期」するまで、UAC を使用する Vista では機能しませんでした。インストーラーは他の場合に機能しました。誰でも理由を知っていますか?

インストーラーの作成には WIX を使用しています。

4

2 に答える 2

11

+1ランス。別の言い方をして、さらに情報を提供するには

MSI プロセスには 2 つのステップがあります

  • 即時- 設定を収集する場所 (インストール ディレクトリなど) - ここではマシンに変更を加えないでください

そしてその後

  • Deferred - すべての設定が収集された後に実行され、実際にインストールが行われます。

さらにいくつかの考え

  • 即時は常に実行されるとは限りません (例: スクリプトによるインストール) ので、それに依存しないでください。

遅延アクションを実行できるモードは 2 つあります。

  • NoImpersonate - 別名 NT Authority\System で、コンピューターに対する完全なアクセス許可を持っています

  • なりすまし- インストールを開始した人。

UAC を有効にすると、 Impersonateにキッカーがあります。ユーザーが実際に管理者であっても、標準のユーザー トークンのみがあり、管理者権限はありません。可能であれば NoImpersonateを維持してください。そうしないと、カスタム アクションで何も実行できなくなります。

于 2008-11-22T22:02:37.297 に答える
4

カスタム アクションは、InstallExecuteSequence で検出されたときにすぐに実行されていました。実際のインストール スクリプトが実行されたときの代わりに。これにより、システムの昇格されたアクセス許可ではなく、ユーザーのアクセス許可でカスタム アクションが実行されました。この一連のブログ投稿 ( http://blogs.msdn.com/rflaming/archive/2006/09/23/768146.aspx ) で、何が起きているかを詳しく説明します。遅延カスタム アクションとして実行されない、マシンの状態に影響を与えるカスタム アクションは使用しないでください。

于 2008-10-30T19:53:39.320 に答える