2017-08-31 27 views
0

私はwixでカスタムマネージドブートストラップアプリケーションを開発中です。私のインストーラは、.Netframework461(必要な場合)、redist_x86、および私のアプリケーションのmsipackageをインストールします。Wixバンドル内にバンドルされているInstallShield.exeをサイレントアンインストールするにはどうすればよいですか?

私の新しい要件は上記のコンポーネントと一緒にInstallShied exeをインストールする必要があります。私は静かにinstallshieldのexeをインストールすることができますが、私のインストーラでは、installshieldのアンインストールは起こっていません。

私はWiXのバンドルファイルに追加したコードは以下の通りです:

<PackageGroup Id ="InstallShield"> 
    <ExePackage Id="InstallShield" DisplayName="InstallShield" InstallCommand="/s /v/qn" UninstallCommand="/x /s /v/qn" PerMachine="yes" Vital="yes" Permanent="no" SourceFile="setup.exe" Compressed="yes"/> 
</PackageGroup> 

別interesttingの部分は、私は黙ってコマンドプロンプトのコードで使用したのと同じコマンドを使用して同じのInstallShield exeファイルをインストールし、UINSTALLかもしれないということです。

私のインストーラとコマンドプロンプトの両方が管理者モードで実行されています。

また、私がサイレントインストールを行った後、より多くの調査で、exeの詳細を消去して、アンインストールのためのinstallshield exeを取得しないようにしています。私はそれが正しい観察かどうかわからない。ログファイルに表示されるエラーを以下に示します。

enter image description here

私は一つの解決策インストール用の応答ファイルを生成するようになりました。私が見つけたコマンドは以下の通りです。

のSetup.exe/sの/f1"[SETUPSUPPORTDIR]\Setup.iss」

しかし、私の質問は、私は黙って上記応答ファイルに対するアンインストールする方法です。これに対して正しいアンインストールコマンドは何ですか?

+0

異なる種類黙って実行するために異なるコマンドラインを必要とします。それがどのようなプロジェクトから構築されたのか知っていますか?そうでなければ、それを呼び出すパラメータを教えてくれるドキュメンテーションがありますか? –

答えて

1

ExePackageにはDetectConditionがありません。したがって、インストールまたはアンインストール時に実行ファイルがインストールされているかどうかをブートストラップが判断する方法はありません。

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

通常、レジストリ検索は、製品がインストールされているときに存在する特定のレジストリキーまたは場所を検索し、変数をその値に設定するか、存在するかどうかで真または偽に設定します。次に、変数の値に基づいて検出条件を簡単に評価することができ、ブートストラッパーは製品のアンインストールまたはインストールを試みます。

+0

ありがとうございます。それは本当に役に立ちました。私は1つの検出条件を追加し、正常に動作しています。 – SHK

0

'Permanent = "Yes"を' Permanent = "No" 'に変更します。現在のところ、インストーラはアンインストール時に.exeパッケージをパーマネントとしてリストされているので削除しようとしません。

+0

私はこれを既に試みたが、役に立たない。 – SHK

0

わかりませんが、Installshield setup.exeアンインストールプロセス(インストール時に作成された応答ファイルとは異なる応答ファイル)用の応答ファイルを作成する必要があります。この回答を見る:Installshield Silent Uninstall not working at Command Line

セットアップ。exeファイルのスイッチ:

そして、良い対策のためにこれをで投げる:のInstallShieldブートストラップのhttp://unattended.sourceforge.net/installers.php

+0

ありがとうございました。私は検出状態で結果を得ました。 – SHK

関連する問題