0

私は人が最初にインストールするインストーラを持っていますが、アップデートは自動的に行われなければなりません。インストーラが失敗した場合、Wi-Xはロールバックやログファイル以外に何もできますか?リブートのような?

処理インストーラの障害が問題です。インストーラが失敗するように計画する必要があります:ブートストラップの< RollbackBoundary />要素を使用して正常な状態にしてから、WiXログと自分自身のログを使用して失敗を記録します。

しかし、これでは十分ではありません。

プログラムがあります(X.exeとしましょう)。

  • 再起動をのx.exe
  • 再起動するようにターゲットマシン:インストーラが失敗したインストーラが起動し、前のとき場合-と-、私はインストーラがでたことの状態にロールバックする必要がありますX.exe(私はX.exeをターゲットコンピュータのスタートアップフォルダにインストールします;これはインストールの成功のために行います - ターゲットマシンを再起動してください)。
  • 予期しない方法で問題を処理します。

WiXがインストーラの失敗に対して行うことができるログ以外に何かありますか?私が捕まえることができる状態、または何かがありますか?

私は素晴らしい本WiX 3.6: A Developer's Guide to Windows Installer XML(ニック・ラミレス)によってWiXを学んだが、そこに私の問題を解決するものは何も見つかりません。また、インターウェブ上で見つけることもできません。

私は見逃したことがあると思います。インストーラーの障害に対処する方法を誰もが知っていますか?


回答や既存のリソースに私の質問への答えを見つけるの欠如の欠如に基づいて、私はあまりにも多くを行うために、Windowsインストーラを求めていることを実現します。他のインストールプログラムは、このような機能を提供する場合、私は疑問に思う

if (installation fails) 
{ 
    do something (besides rollback and logging) 
} 

私のような何かをする方法があるだろうと期待していましたか?または、インストーラが失敗した場合にターゲットマシンに何かをさせる他の方法がある場合は、

+0

MSIのインストールは完全に機能するか、完全に失敗するので、あなたのコメントは次のようになります。「インストーラーが失敗した場合、その状態に戻す必要があります。インストーラが起動する前にインストーラが起動していた」というメッセージが表示されます。マシンはインストール前の状態になり、ロールバックアクションなどを含むカスタムアクションが適用されます.MSIインストールでは、システムの復元を使用してシステムのスナップショットを作成します。 – PhilDW

+0

ああ、コメントの "どちらか"です。文全体が意味をなさない。私はそれを取り除くでしょう.... – Bob

+0

文は今よりずっと意味があります - 私はMSIがトランザクションであることを認識します。 MSIが失敗したら何かしたい。 – Bob

答えて

0

理論的には、ロールバックの全領域には警告が含まれています。 「インストールに失敗しました」ダイアログボックスと成功ケースとの違いを考えてみましょう。そのダイアログボックスでカスタムアクションを実行できます。しかし、それはUIがある場合のみです。だから多分ロールバックアクションから何かをする。しかし、どうすればRollbacks are disabled?あなたの穏やかで堅牢なソリューションは、Windows Installerパッケージの外にあります。

X.exeでは、成功、取り消し、失敗、およびさまざまな再起動が必要な状態を識別できるように、戻りコードをキャプチャするようにしてください。それが失敗した場合は、外部の修正プログラム(再起動など)を適用することを検討してください。 X.exeを書いていない場合は、そのようにするか、X.exeを呼び出す何かを書くことを検討してください。

しかし、実際にはPhilDWのコメントがコアになります。アプリケーションのインストーラでは、失敗したときの再起動は予期された動作ではありません。

関連する問題