2017-10-24 12 views
0

私はポストグルに依存するプログラムを持っています。私が作ったインストーラは、ユーザのためにpostgresをインストールします。しかし、私はPostgresがまだインストールされていない場合にのみこれが起こるようにしたいと思います。条件付きのカスタムアクションでこれを実行しようとしていますが、動作させることはできません。どんな助けでも大歓迎です。これは私が現在持っているものです。プロパティ値のWiXカスタムアクション条件

<Property Id="POSTGRESINSTALLED"> 
    <RegistrySearch Id="POSTGRESINSTALLED_SEARCH" Key="SOFTWARE\PostgreSQL\Installations\postgresql-x64-9.5" Root="HKLM" Type="raw" Name="Branding" /> 
</Property> 

<InstallExecuteSequence> 
    <Custom Action='postgres_install_action' After='vc_redist_install_action'> (NOT POSTGRESINSTALLED) OR (REINSTALL) </Custom> 
</InstallExecuteSequence> 

答えて

1

どの部分が動作していないかは不明ですが、検出またはインストールします。

インストールを実行し、ログ(msiexec/I [パスto msi]/l * vx [パスのテキストログ])を生成すると、POSTGRESINSTALLED_SEARCHが設定されているかどうかがわかります。検索が早いため、インストールを完了する必要はありません。一般的な考え方が正しいと仮定した場合、32ビットレジストリまたは64ビットレジストリのどちらを検索するかを明示的に指定していません。単に間違った場所を探しているだけかもしれません。

検索がうまくいくと、インストールが失敗することがあります。カスタムアクションは即時(デフォルト)であるように見えるため、高レベルで実行されず、失敗する可能性があります。 vc redist installカスタムアクションについても同じことが言えます。

前提条件をインストールするモデルは、バンドルを使用して最初にインストールすることです。これらは役立つはずですが、それはあなたがこれをやるべき方法です:

http://wixtoolset.org/documentation/manual/v3/bundle/

http://www.c-sharpcorner.com/UploadFile/cb88b2/installing-prerequisites-using-wix-bootstrapper-project-and/

How to include prerequisites with msi/Setup.exe in WIX

WiX - Install Prerequisites and 3rd party applications

+0

私は問題を発見しました。私はRegistrySearchから 'Win64 =" yes "'を見つけられませんでした。アーチが設定されておらず、x86にデフォルト設定されていることに気付かなかった。私はバンドルを見ます。 –

関連する問題