InstallShield 2015 Basic MSIでセットアップを作成しました。
このセットアップでは、クライアントまたはサーバーをインストールするかどうかをユーザーが選択できるとします。 の各セットアップの種類(クライアントまたはサーバー)には、インストールすることができるいくつかの機能があります。
クライアントセットアップのインストールを選択し、その下に2つの機能を追加しました。 UIで設定をもう一度実行すると、メンテナンスモードに入り、クライアントにさらに機能を追加できます。InstallShieldコマンドラインから同じMSIを2回インストールすることをブロックします
私の問題は、同じセットアップをコマンドライン(msiexec/I)から再度実行して、サーバーセットアップタイプをインストールしようとしましたが、現在のセットアップではブロックされないため、クライアントセットアップが破損する可能性がありますすでにインストールされています。
現在のセットアップがインストールされているかどうかを確認し、コマンドラインから実行しようとしているアクションを確認し、アンインストールしない場合は(まだコマンドラインからアンインストールを実行する必要がある) )。
この論理は正しいですか?コマンドラインからコマンドを実行するユーザーは何ですか?彼はmsiexec/Iを実行し、コマンドラインからアンインストールを試みないことを意味します。
同じMSIをコマンドラインから2回インストールするのを防ぐためにInstallShield \ MSIが\プロパティでビルドされているのだろうか?
サーバーとクライアントの機能をUIとコマンドラインの両方から排他的にしたいとしますか? –
正しい、ユーザーはUIからクライアントまたはサーバーをインストールできますが、コマンドラインからはインストールできないようにできますが、コマンドラインから実行しているアクションを確認する方法がわかりません。そうではありません。 – Epligam
ユーザーが2つの競合する機能をインストールすることを要求しているか、またはインストールされている別の機能と競合する1つの機能をインストールするよう要求している場合に、インストールをブロックするタイプ19のエラーカスタムアクションを記述します。条件式に機能要求とインストールされた状態演算子を使用し、CostFinalizeの後にスケジュールします。 –