1

私はこのWiXフラグメントを持っています:

<Component Id="AppData" Guid="{30967EFB-4B86-4EBB-8486-5271D051082E}">
    <Condition>NOT KEEPAPPDATA</Condition>
    <RemoveFile Id="PurgeAppData" Name="*.*" On="uninstall" />
    <RemoveFolder Id="RemoveAppDataFolder" On="uninstall" />
</Component>

<Directory>プログラムがデータを保存するアプリケーションデータの下のディレクトリの適切な要素に。ただしどちらも

msiexec /xpath-to-msi.msi KEEPAPPDATA="TRUE"

msiexec /xpath-to-msi.msi

フォルダーを削除すると、条件が機能しなくなります。私もこの条件を試しました:

<Condition>KEEPAPPDATA == ""</Condition>

同じ結果で。

アンインストール中に動作を変更するためにパラメーターを msiexec に渡す正しい方法は何ですか? パラメータが無視されているようです。

4

1 に答える 1

1

デフォルトでは、コンポーネントの状態はアンインストール中に評価されません。これは、 Rob Mensching からの回答を含む同様のStackoverflow の質問です。彼は Transitive 属性を使用することを提案しています。ドキュメントから:

この属性が「yes」に設定されている場合、インストーラーは再インストール時に条件のステートメントの値を再評価します。値が以前に False であり、True に変更された場合、インストーラーはコンポーネントをインストールします。値が以前に True であり、False に変更された場合、コンポーネントに他の製品がクライアントとして含まれていても、インストーラーはコンポーネントを削除します。

于 2013-11-22T07:38:46.767 に答える