0

WiX を使用して、ユーザーごとにブラウザー プラグインをインストールする MSI を生成しています。DPInst (昇格された特権が必要) を使用してドライバーをインストールするカスタム アクションがあります。

UAC が有効な場合、インストールは正常に機能します。Windows に昇格を促すプロンプトが表示されます。ただし、UAC を無効にして通常のユーザー アカウントにインストールしようとすると、コンピューターがフリーズするまで dpinst.exe が生成されます。(最終カウントで約1000回)。

私が持って<InstallExecuteSequence>いる:
<Custom Action="Install_Drivers" After="InstallFiles">NOT Installed</Custom>

私のカスタムアクションは次のとおりです。
<CustomAction Id='Install_Drivers' Execute='deferred' Directory='DRIVERS' ExeCommand='"[DRIVERS]DPinst.exe" /SW /SA' Return='ignore' Impersonate='no'/>

これReturn='ignore'までのところ、dpinst.exe は常に0 以外のコードを返すためです

UAC が無効になっているときにカスタム アクションが正しく失敗することを確認するにはどうすればよいですか? 関連して、ドライバーのインストールが失敗したときにユーザーにカスタム メッセージを表示することはできますか?

詳細情報: 現在 Windows 7 で開発していますが、WinXP 以降を対象としています。

編集インストールのログを見ると、これらは関連する行のようです:

Executing op: CacheSizeFlush(,)
Executing op: ActionStart(Name=Install_Drivers,,)
Executing op: CustomActionSchedule(Action=Install_Drivers,ActionType=3170,Source=C:\long_redacted\Drivers\,Target="C:\long_redacted_path\Drivers\DPinst.exe" /SW /SA,)
Disallowing shutdown.  Shutdown counter: 0
CustomAction Install_Drivers returned actual error code 1073807364 but will be translated to success due to continue marking

シャットダウンについてのちょっとしたことは、ログオフしたときにインストールを停止したことだと思います。(キャンセルしても効果はないようです)。

4

2 に答える 2

1

次のように、「CustomAction」要素に「Impersonate=no」属性を設定してみてください。

<CustomAction Id='Install_Drivers' Execute='deferred' Directory='DRIVERS' ExeCommand='[DRIVERS]DPinst.exe" /SW /SA' Return='ignore' Impersonate="no"  />

また、注意してください:ExeCommandに二重引用符があります

于 2013-07-13T00:30:01.457 に答える
0

ドライバーのインストールは、本質的にコンピューターごとの操作です。制限付きユーザーはできません。したがって、UAC を無効にすると機能しません。DPInst は、権限がなく、権限を取得できないというヒントを取得していないようです。DPInst のバグのようです。インストーラーをマシンごとに変更し、Privileged プロパティに起動条件を追加して、UAC を使用しない限られたユーザーに対してインストーラーが起動しないようにする必要があります。

于 2013-07-13T15:56:40.740 に答える