2016-08-08 11 views
-1

実行時に.exeパッケージをインストールするが、インストーラをアンインストールする際にインストーラを準備しました.exeパッケージはアンインストールされません。wixを通してインストーラを実行してインストールされた.exeパッケージをアンインストールする方法

+0

コードスニペット?私はあなたのExePackageコードを質問**に入れることから始めます**少なくともアンインストール時には%temp%からのログファイルを入れます私の最初の推測では、すべてのExesのDetectConditionが間違っているため、バンドルはアンインストール時にインストールされているかどうかを知ることができません。 –

+0

あなたの返信にBrainありがとうございました。私のXMLコードのコード。インストーラをアンインストールしている間にRubyアンインストールを起動する方法。 karim

答えて

1

検出条件が正しくありません。検出条件は、パッケージが既にシステムに存在するかどうかをチェックするために使用されます。

パッケージがターゲットシステムに存在するかどうかを判断する条件。この条件では、検索によって返される組み込みの変数と変数を使用できます。 WindowsはExePackageの存在を検出する方法を提供していないため、この条件が必要です。 Burnはこの条件を使用して、バンドルアクション中にこのパッケージをどのように扱うかを決定します。たとえば、この条件がfalseまたは省略されてバンドルがインストールされている場合、Burnはこのパッケージをインストールします。

通常、このExePackageによって追加されたキーを検索するレジストリ検索を使用します。検索でResult="Exists"を使用して、DetectConditionで使用する変数をtrueまたはfalseに設定します。

はまた、あなたはUninstallCommand

アンインストール中にExePackageに提供されるコマンドライン引数を指定する必要があります。この属性が指定されていない場合、実行可能ファイルはコマンドライン引数なしで起動されます。これは、それをアンインストールするためにルビーのインストーラにcmdを引数を与えると、「はい

常設属性を設定し、アンインストールされているからExePackageを防ぐために。あなたが使用してインストーラ自体を通じて、これらのcmdの引数を見つけることができるはずです/?または - ?または他のリソースをオンラインでダウンロードする

+0

UnistallCommand属性を使用して必要な引数を渡しましたが、機能しませんでした。インストーラのアンインストール中に.msiパッケージがアンインストールされたことが確認されました。 .exeパッケージの場合に動作しない理由。 – karim

+0

正しいDetectConditionが必要です。バンドルログ(%temp%にあります)では、検出段階で、exeが**インストールされていない**検出されているので、アンインストールを計画していません。アンインストールバンドルログの貼り付けをコピーしてください。 –

+0

Ruby(.exe)とpython(.msiパッケージ)をアンインストールしたインストーラをアンインストールすると、以下の違いが見られます。 [2016-08-10T10:08:44] i201:計画パッケージ:rubyinstaller_1.9.3_p551.exe、状態:Present、デフォルト要求:なし、ba要求:なし、実行:なし、ロールバック:なし、キャッシュ:いいえ、uncache :いいえ、依存関係:なし [1194:2934] [2016-08-10T10:08:44] i201:計画されているパッケージ:python_2.7.10.msi、state:Present、default requested:Absent、ba requested:アンインストール、ロールバック:インストール、キャッシュ:いいえ、uncache:はい、依存関係:登録解除 – karim

関連する問題