DLLで定義されたカスタムアクションを使用して、WiXでインストーラーファイルを作成しています。カスタムアクションはアンインストール時に実行され、失敗した場合は、アンインストールプロセスとロールバックを停止する必要があります。このアクションはシステムに影響を与えないので、前に呼び出すことができるのでInstallInitialize
、元に戻すための他の変更はありません。
condition
カスタムアクションのプロパティを定義すると、次のようにアンインストールプロセスを停止するために使用できると言われました。
<SetProperty Id="CA_mine"
Value="No" Sequence="execute"
Before="CA_mine">
Installed AND remove=ALL
</SetProperty>
<CustomAction Id="CA_mine" BinaryKey="BIN_mine" DllEntry="mine" Execute="immediate"/>
<InstallExecuteSequence>
<Custom Action="CA_mine"
Before="InstallInitialize">
Installed AND remove=ALL
</Custom>
</InstallExecuteSequence>
<Condition>
NOT (Installed AND remove=ALL) OR [CA_mine] = "No"
</Condition>
アンインストールを停止する場合mine
は、プロパティCA_mine
を「はい」に設定します。
これでもうまくいくでしょうか?condition
タグはいつ評価されますか?ここで私の目標を達成するためのより簡単な方法はありますか(mine
失敗したときにアンインストールをロールバックします)?