1

SCCM 2012 がインストールされているかどうかを検出する Wix C++ カスタム アクションを作成しています。レジストリから製品 GUID を読み取ることでこれを行っています。SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\

しかし、SCCM 2012 がインストールされたシステムではレジストリにそのような情報がなかったため、これは機能しませんでした。

これを達成するために誰かが私を正しい方向に向けることができますか?

SCCM 2012 がインストールされている場合にのみソフトウェアをインストールしたいと考えています。

4

2 に答える 2

2

ソフトウェアを検出するために文書化されていない内部構造に頼るべきではありません。それらは警告なしに変更される可能性があります。(たとえば、製品コードの GUID はアップグレード中に変更されるため、SCCM チームが変更しないと言わない限り、SCCM 2012 RTM や 2012 の更新で変更される可能性があります。)

代わりに、チームがそれを検出する方法を文書化しているかどうかを確認してください。ほとんどのチームは、インストールされているバージョンなどを検出するためのレジストリ値を文書化しています。そうでない場合でも、値がなくなる可能性が低いため、レジストリを調べたほうがよいでしょう。

于 2011-08-26T14:43:53.010 に答える
2

これにはCondition要素を利用する必要があります。ProductやFragmentの下に置くと起動条件として機能します。起動条件の詳細については、こちらをご覧ください。

作成するこの条件は、プロパティをチェックします。探しているソフトウェアがインストールされている場合はプロパティを設定し、それ以外の場合は設定しないでください (これが最も単純なケースです)。これを実現するには、適切なレジストリ パスが見つかった場合にプロパティを定義するRegistrySearch要素を作成します。RegistrySearch 要素は、Property要素の子である必要があります。

ご覧のとおり、ここにはカスタム アクションはありません。:)

于 2011-08-26T12:59:41.640 に答える