0

WiX インストーラーを使用して PostGreSqlServer をデプロイしようとしていますが、失敗し続け、その理由がわかりません。

私の wxs ファイルの重要な部分:

<Binary SourceFile="postgresql-9.2.1-1-windows.exe" Id="PostGreInstaller"  />

<CustomAction  Id="InstallPostGre" BinaryKey="PostGreInstaller"
               ExeCommand='"--serverport 5432 --servicename postgres_service --locale C --superaccount Myadmin --superpassword Mypassword --unattendedmodeui minimal --debuglevel 2 --mode unattended"'
               Execute="deferred" Return="check"   Impersonate="yes" />

<InstallExecuteSequence>
  <Custom Action="InstallPostGre" Before="InstallFinalize" />
</InstallExecuteSequence>

すでにコマンドシェルでコマンドを試してみましたが、うまくいきました。インストーラーにない理由はありません。

50MB を超える容量があるため、インストーラーがインストーラーを埋め込んでいることは確かです。

また、ログをオンにしてmsiを開始しましたが、それもあまり役に立ちませんでした...

Action 16:34:29: InstallPostGre. 
MSI (s) (64:E0) [16:34:29:407]: Executing op: CustomActionSchedule(Action=InstallPostGre,ActionType=1026,Source=BinaryData,Target=--serverport 5432 --servicename postgres_service --locale C --superaccount Myadmin --superpassword Mypassword --unattendedmodeui minimal --debuglevel 2 --mode unattended,)
MSI (s) (64:E0) [16:34:31:698]: Note: 1: 1721 2: InstallPostGre 3: C:\Windows\Installer\MSIE410.tmp 4: --serverport 5432 --servicename postgres_service --locale C --superaccount Myadmin --superpassword Mypassword --unattendedmodeui minimal --debuglevel 2 --mode unattended 
MSI (s) (64:E0) [16:34:31:698]: Note: 1: 2205 2:  3: Error 
MSI (s) (64:E0) [16:34:31:698]: Note: 1: 2228 2:  3: Error 4: SELECT `Message` FROM `Error` WHERE `Error` = 1721 
Error 1721. There is a problem with this Windows Installer package. A program required for this install to complete could not be run. Contact your support personnel or package vendor. Action: InstallPostGre, location: C:\Windows\Installer\MSIE410.tmp, command: --serverport 5432 --servicename postgres_service --locale C --superaccount Myadmin --superpassword Mypassword --unattendedmodeui minimal --debuglevel 2 --mode unattended 
MSI (s) (64:E0) [16:34:34:717]: Note: 1: 2205 2:  3: Error 
MSI (s) (64:E0) [16:34:34:717]: Note: 1: 2228 2:  3: Error 4: SELECT `Message` FROM `Error` WHERE `Error` = 1709 
MSI (s) (64:E0) [16:34:34:717]: Product: Hausverwaltung -- Error 1721. There is a problem with this Windows Installer package. A program required for this install to complete could not be run. Contact your support personnel or package vendor. Action: InstallPostGre, location: C:\Windows\Installer\MSIE410.tmp, command: --serverport 5432 --servicename postgres_service --locale C --superaccount Myadmin --superpassword Mypassword --unattendedmodeui minimal --debuglevel 2 --mode unattended 

そこにWiXの達人はいますか?:)

4

3 に答える 3

3

これが機能しない最も可能性の高い理由は、postgres exe に既に msi が含まれており、トランザクションを作成するときに一度に 1 つの msi しかインストールできず、(現在、これを変更する計画があると聞いています) 実行できるトランザクションは 1 つだけです。一度に。前の回答で述べたように、焼き込みバンドルを使用して、2 つのインストーラーをパッケージ化してシームレスなユーザー エクスペリエンスにすることができます。また、レジストリ検索を実行して、実際に postgres をインストールする必要があるかどうかをバンドルで確認できます。

于 2012-11-01T08:48:25.533 に答える
2

これを処理するには、WIX v3.6 バンドルの概念を使用できます。詳細については、http://wix.sourceforge.net/manual-wix3/authoring_bundle_intro.htmをご覧ください。

基本的に、WIX MSI と EXE を単一の WIX バンドル パッケージにパッケージ化して、ターゲット マシンにインストールできるようにします。

または、試した EXECCommand のように、CustomActions を介して実行できるスクリプトを作成することもできます。しかし、アンインストールとアップグレードをはるかに優れた方法で管理できるので、Bundle を使用したいと思います。それで、WIX バンドルを試して、それがどうなるか見てみましょう。

于 2012-10-31T22:29:12.710 に答える
0

Windowsユーザーアクセス制御がオフになっている限り、使用している手法で成功しました。

于 2012-11-07T05:10:13.120 に答える