2017-05-23 23 views
0

私は様々なモジュールをインストールするwixバンドルを持っています。これらのモジュールのうちの1つが、システムを再起動させる可能性があります。今私がやりたいのは、UIインストールの場合、バンドルのインストールの最後に表示されるプロンプトが表示され、サイレントインストールの場合は自動再起動を避けたいということですインストールが再起動を引き起こす可能性があることに気付かない可能性があります。Wix Burnインストーラはサイレントインストールでリブートしません

私は様々なスレッドとオプションを見て、サイレントインストールのために "/ norestart"パラメータを渡すことができ、自動リブートをしないように気をつけました。したがって、ユーザーが "/ norestart"パラメータを渡さずに、そのパラメータが渡された場合にのみ許可すると、サイレントインストールに失敗します。私は "/ norestart"がREBOOT(https://msdn.microsoft.com/en-us/library/windows/desktop/aa371101(v=vs.85).aspx)の特定の値にマップされることを期待していましたが、 "/ norestart"パラメータを渡すかどうかに関係なく、ログのREBOOTの値は常に"ReallySuppress"と表示されますが、パラメータが渡されたときに自動的に再起動されず、パラメータが渡されないと再起動しません。私はそれがどのように決定されているのか、それをプログラム的に決定すべきかについて本当に混乱しています。

(私は「/ norestartサポート」パラメータを渡さない場合)、それは再起動時にこれはこれは、それが(ときに私を再起動しないときから、ある構成要素のうちの1つのログから

Command Line: ALLUSERS=1 ARPSYSTEMCOMPONENT=1 MSIFASTINSTALL=7 CWD=<...> REBOOT=ReallySuppress CURRENTDIRECTORY=<...> CLIENTUILEVEL=3 MSICLIENTUSESEXTERNALUI=1 CLIENTPROCESSID=2240 

です"/ norestart"パラメータを渡してください)

Command Line: ALLUSERS=1 ARPSYSTEMCOMPONENT=1 MSIFASTINSTALL=7 CWD=<...> REBOOT=ReallySuppress CURRENTDIRECTORY=<...> CLIENTUILEVEL=3 MSICLIENTUSESEXTERNALUI=1 CLIENTPROCESSID=1984 

何か助けや指針がありがとうございます。あなたが私にもっと情報を提供したい、または何かが不明な場合は、私に知らせてください。あなたの時間を事前に感謝します。

参考:あなたが見つけてきたように https://msdn.microsoft.com/en-us/library/windows/desktop/aa372024(v=vs.85).aspx

https://msdn.microsoft.com/en-us/library/windows/desktop/aa371101(v=vs.85).aspx

答えて

0

、MSIパッケージは、常に再起動を開始することが抑制されています。

あなたが欠けているのは、ブートストラップアプリケーション(WixStdBAやカスタム/管理されたBAなど)が再起動を制御するものです。

BAは、各MSIパッケージのインストール結果を検査します。 MSIパッケージのいずれかが再起動を必要とする場合、ブートストラップアプリケーションはリブートを開始します(ユーザーがそれを許可しないか、/norestartスイッチが渡された場合など)。

/norestartコマンドラインスイッチは、ブートストラップアプリケーションがバンドル/チェーンの最後で再起動を開始できないようにします。

/norestartの不在に基づいてインストールをブロックする場合は、カスタムブートストラップアプリケーションを使用する必要があります。

カスタムブートストラップアプリケーションを使用する場合は、デフォルトの動作(つまり、/norestartをデフォルトにする)を変更することもできます。

0

REBOOTプロパティのデフォルト値はReallySuppressではないため、他の何かが起きています。ソース、カスタムアクション、またはMSIを見ることなく、なぜこれが言えるのかは分かりません。完全な冗長なログは、それが設定されていることを示すかもしれません。 MSIのプロパティテーブルにある可能性があります。カスタムアクションコードから設定できます。コマンドラインにはほかに何がありますか?探偵活動が必要です。

もう1つの問題は、サイレントが尋ねることができないため、他のプロパティ、ScheduleRebootの可能性などの設定が何であるか不明確であるため、サイレントインストールは再起動を要求しないということです。/qbなどの従来のコマンドラインオプションを使用する方が簡単です。なぜなら、それらが何をするかをより明確にする傾向があるからです。あなたがそれを解読する人々を必要とするなら、完全な完全な冗長なログをどこかに投稿してください。

通常、再起動を抑制することはお勧めできません。必要な主な理由は、ファイルを再起動する必要がある方法で置き換える必要があることです。これは、次回の再起動までにインストールが完了していないことを意味し、インストールされているアプリケーションを実行しようとすると、まだインストールされていない古いファイルではなく古いファイルが使用される可能性があります。

関連する問題