2012-02-09 12 views
0

問題:
私は、前提条件アプリケーションがユーザーマシンに存在しない場合、ファイルがインストールされないというユーザー要件があります。しかし、私の製品をインストールした後、ユーザーがPrerequisiteアプリケーションをインストールすると、彼はインストーラを実行し、その不足しているファイルと関連するレジストリエントリをインストールするために修復を選択します。Wix:修理または再インストール中にコンポーネントをインストールする

私の期待:
私は修理だけで、すでに最初のインストールではインストールされてしまうこれらのファイルを修復します知っています。しかし、これについての回避策はありませんか?

ここにAddLocalがありますか?

ありがとうございました。

答えて

0

あなたの質問は混乱しています。

2つのプログラムを含むアプリケーションがあります。インストーラを実行すると、prerequsiteがisntalledではないので、プログラム1のみがインストールされ、プログラム2はインストールされません。

これで、前提条件をインストールするときに、インストーラを再度実行するときに、インストールされていなかったプログラム2をインストールすることをお勧めします。

インストーラの場合。 3つのオプションがあります。削除機能を追加し、修復してアンインストールします。削除機能を追加して、プログラム2を選択してインストールすることができます。

pre-reqがインストールされていない場合は、プログラム2をインストールできないという条件をインストーラーで作成する必要があります。だからあなたが最初にインストールしようとするとuプログラム2または完全なインストールを選択すると、あなたはそれをインストールすることができないことをあなたに伝えます。プログラム1のみがインストールされ、セットアップを再度実行すると、追加機能の削除オプションが表示されます。

私はあなたが答えを得たことを願っています。

1

コンポーネントタグ内の条件を使用できます。例:

<Component Id="RepairOrReinstallOnly" Guid="YourGUID" Transitive="yes"> 
    <Condition> 
     INSTALLED AND (NOT UPGRADINGPRODUCTCODE) 
    </Condition> 
    ... 
</Component> 

このように、コンポーネントは修理、改造、再インストールのみにインストールする必要があります。

ただし、最初のインストール(INSTALLEDは偽)またはメジャーアップグレード(UPGRADINGPRODUCTCODEが真)の場合はインストールされません。

0

Windowsインストーラで.msiがキャッシュされると、.cabファイルが削除されるため、これは実現可能ではないと思います。つまり、オリジナルのインストーラをそのまま使用しない限り、元々スキップされたソースファイルは利用できなくなります。その前提を作るのはちょっとしたストレッチです。

私は、常にファイルをインストールするか、アプリケーションにオプションのファイルの展開を管理させることをお勧めします。私は、インストーラで非標準のものを実行しようとするたびに、管理するのがはるかに複雑になり、微妙な問題が忍び込むのを防ぐのがはるかに難しくなることがわかりました。

関連する問題