InstallShield 2012 PRQSの状態を論理的または否定することは可能ですか?
-
12-12-2019 - |
質問
私は msのSQL共有管理オブジェクトをインストールするPRQを持っています。このレジストリキーが存在しない場合はPRQをインストールする条件があります。
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{08ECC740-2B3E-45D7-860C-59B511386286}
.
これは、ユーザーが異なる製品コードを搭載したSMOがインストールされるまで機能します。これは、SQL2008をインストールしたときに開発チームに起こります。 PRQが起動したインストーラ
私はより良い状態が必要です。私がやりたいことは次のとおりです。 if(バージョン<= w.x.y.z ||バージョンが見つかりませんでした) それからPRQ
をインストールしてください InstallShield前提条件で前提条件を実行するには、以下の条件を満たす必要があります。 ここでは、前提条件が意志であるファイルとレジストリキーを定義できます。 実行する必要があるかどうかを確認してください。いない場合 条件、前提条件は常に実行されます。
これは私の調査結果に同意します - 条件は一緒になっています。 XMLの条件への未公開のソースはありますか? レジストリ内のバージョンがインストールされている場合はPRQを実行しようとするのを探しているからです。
<conditions>
<condition Type="32" Comparison="2"
Path="HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\SharedManagementObjects\CurrentVersion"
FileName="Version" ReturnValue="10.1.2531.0">
</condition>
</conditions>
.
type="32"は「レジストリエントリには指定されたバージョン値があります」です。 比較="2"は 'ターゲットシステム上のデータが指定されたデータよりも小さいです'
サイドの質問:種類と比較が列挙されている場所はありますか?
この比較タイプは、ターゲットシステム上のデータとの比較は、指定されたデータよりも小さい、または存在しない、または 'ではありません。現在、鍵が下のバージョンで機能している場合は、キーが存在しない場合(すなわち、SMOがインストールされていない場合)PRQはインストールされていません。
この作品を作る方法はありますか? 「特定のバージョンの存在を持つファイル」の条件には、ファイルのバージョンが上記のバージョン(またはターゲットシステムにファイルが見つからない)オプションが指定されている場合はaです。しかし、SMOによってインストールされたファイルを確認するのには機能しません - ユーザーはC以外のいくつかのドライブにインストールした可能性があります。
私は何かが足りないことを願っています。あなたならどうしますか?
解決
私が通常することは、依存関係を検出するためにARPエントリのような抽象的なことを使用しません。私は依存関係自体に行きます。あなたがDLLを必要とするならば、DLLをインストールするべき何かを検出することを心配するのではなく、DLLがそこにあるかどうかを見てください。