WiX 3.6 を使用して、社内製品のサイレント インストール用の MSI を作成しようとしています。
一部のマシンでは、インストーラーは正常に動作しますが、他のマシンではインストーラーが失敗し、プロパティ値がプロセスの UI フェーズからインストール フェーズに渡されていないことを示すエラー メッセージが表示されます。
このエラーは、WiX ソースのガード句から発生します。
<Condition Message="The property SERVER must be defined on the commandline. Installation will abort.">
<![CDATA[Installed or SERVER]]>
</Condition>
コマンド ラインでプロパティ SERVER を指定したにもかかわらず、Guard 句がトリガーされるのはなぜですか?
インストール コマンドライン:
msiexec /i 'C:\work\Excel.2010(x86).msi' SERVER=fsis-app-server ENVIRONMENT=Production SKIN=Black
グーグル教授と相談して見つけたすべてのことによると、必要なのは私の財産を公開し(名前にすべて大文字を使用して)、それをマークすることだけSecure="yes"
です:
<Property Id="SERVER"
Secure="yes"/>
私はこれを行いましたが、まだ機能していません - 私が見逃したアイデアはありますか?
その他の詳細 ...
... 私のインストーラーは、毎回 MajorUpgrade として実行するように構成されています。
... Windows 7 にのみ展開しています。私のマシン (この問題はあります) には、Windows インストーラーがあります。V 5.0.7601.17514
... ほとんどのマシンは正常にアップグレードされますが、少数 (200 のうち 10 未満) はこのエラーで失敗します。私のマシンは 1 つです (トラブルシューティングに役立ちます)。以前のバージョンは、このマシンの [プログラムと機能]の下に表示されません。
更新 #1
非常に興味深く、ログを読んでいます。インストールが進行しても、プロパティ (SERVER など)の値が失われません。
ログを正しく読んでいる場合、現在実行している MSI ではなく、以前の MSI によって表示されたエラーのようです。
MSI (s) (D8:D0) [13:20:19:213]: 製品: FSIS Plugin for Excel 2010 (32 ビット) v4.7.1047.0 -- コマンドラインでプロパティ SERVER を定義する必要があります。インストールは中止されます。
私が使用しているインストーラーは v4.8.9999.0 であるため、古いバージョン番号が何が起こっているかの手がかりになります。ただし、これは元のスクリーンショットの v4.5.0.0 とは一致しません。
2つの仕事が待っているようです...
... 古いインストーラーをナパームしてこのマシンをクリーンアップし
ます ... 再発を防ぐためにインストーラーを変更します。
アップデート #2
アンインストール時に失敗することを確認しました。
<Condition Message="The property SERVER must be defined on the commandline. Installation will abort.">
<![CDATA[Installed or SERVER]]>
</Condition>
この保護句がアンインストールをトリガーして中止するのはなぜですか?
「インストール済みまたは」と表示されているのは、製品を取り外したときに正常に動作するようにするためだと思いました。