2016-06-12 3 views
1

すべてのMsiPackage要素でVisible = "yes"のWix Burnバンドルがあります。新しいインストールまたはアップグレードの後、期待どおりに各MSIパッケージが[バンドルのエントリを含むプログラムの追加と削除]に表示されます。ただし、アップグレード後にバンドルの修復を行うと、すべてのMSIエントリが予期せずにアプリケーションの追加と削除から削除されます。新規インストール後に修復を行うと、「プログラムの追加と削除」のすべてのエントリは元のままです。Wixバンドルの修理後にプログラムの追加と削除の項目がありません

私が行っているアップグレードは、実際には以前のバージョンのバンドルではありません。むしろ、一部のMSIは既にインストールされており、バンドルはこれらのMSIの一部をアップグレードします。 MSIを長期間出荷しているため、これはお客様にとっては当てはまりますが、これは火傷の出荷を予定しているのは初めてです。

修理でこの予期しない動作を見たことがありますか?

私はWix Toolsetバージョン3.10を使用しています。私は管理されたブートストラップアプリケーションを持っています。この問題を引き起こすために私が管理しているブートストラップアプリケーションの修復に何が間違っているのかわかりません。おそらく、これは火傷のバグですか?

答えて

0

答えはノーです。他の誰も修復に関してこの正確な問題を見る可能性は低いです。これは、MSIの2つの非常に特殊なバグが原因で問題が発生したためです。

は例えば、1 MSIは...

RemoveRegistry = RemoveIconRegKey 
Root = 2 
Key = Software\Microsoft\Windows\CurrentVersion\Uninstall\[UPGRADE_1]  
Name = - 
Component_ = RemoveIconRegKey 

をRemoveRegitryTableで次のエントリを持っていた...と、修復中に、UPGRADE_1が設定されていません。

これはバグだったものの、私たちはこの問題を何年も捉えていませんでした。私たちは今や火傷に切り替えるばかりであり、火傷が修復する方法によって問題が引き起こされました。具体的には、書き込みはREINSTALLプロパティを設定します。つまり、REINSTALLプロパティが指定されている場合にのみ、既にインストールされているコンポーネントに対してRemoveRegistryValuesアクションが再実行されます。アクションは再実行されますが、修復中にUPGRADE_1プロパティが設定されず、64ビットのすべてのAdd/Removeプログラムエントリが削除されます。

また、単一のMSIがインストールされている間にすべての追加/削除プログラムエントリを消去する方法がないことを認識しました。私は、プログラムのエントリを追加/削除するには、コマンドラインにARPSYSTEMCOMPONENT = 1を渡して隠すべき個々のMSIに書き込みを隠すことを確信しています。

+0

これは質問に対する答えを提供しません。批評をしたり、著者の説明を求めるには、投稿の下にコメントを残してください。 - [レビューの投稿](承認済み/レビュー/低品質投稿/ 13563451) –

+0

OK。私は私の答えを編集しました。うまくいけば、それは今より明確です。 – Gerhard

関連する問題