2016-06-12 113 views
1

對於所有MsiPackage元素,我都有一個Wix刻錄包,其Visible =「yes」。在新的安裝或升級之後,正如所料,每個MSI軟件包都會出現在「添加/刪除程序」中,其中包括軟件包條目。但是,當我在升級後修復該捆綁包時,意外地從「添加/刪除程序」中刪除了所有MSI條目。如果在全新安裝後進行修復,則添加/刪除程序中的所有條目均保持不變。Wix Bundle修復後缺少的添加/刪除程序條目

我正在做的升級實際上並不是捆綁軟件的以前版本。相反,一些MSI已經安裝,並且該軟件包升級了其中一些MSI。對於我們的客戶來說,情況就是這樣,因爲我們已經發貨了很長時間的MSI,但這是我們第一次計劃運送燒錄包。

有沒有其他人看到這種意外的行爲與維修?

我正在使用Wix Toolset版本3.10,並且我有一個託管引導程序應用程序。我不知道我的託管引導程序應用程序中的修復可能會導致此問題。也許這是一個燒傷的錯誤?

回答

0

答案是否定的。沒有人可能會看到這個確切的修復問題。這是因爲這個問題是由我們兩個MSI中的非常具體和特殊的錯誤引起的。

例如,一個MSI曾在RemoveRegitryTable以下條目...

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

...而且,維修期間,UPGRADE_1沒有設置。

雖然這是一個bug,但我們多年來一直沒有發現這個問題。我們現在正在切換到燒傷,問題是由燒傷修復的方式引發的。具體來說,刻錄會設置REINSTALL屬性。也就是說,只有在指定REINSTALL屬性時,RemoveRegistryValues操作纔會重新爲已安裝的組件重新運行。儘管重新運行該操作,但在修復過程中未設置UPGRADE_1屬性,導致刪除所有64位的添加/刪除程序條目。

此外,我現在意識到,在安裝單個MSI時,現在沒有辦法刻錄可以消除所有添加/刪除程序條目。我很確定,通過在命令行上將ARPSYSTEMCOMPONENT = 1傳遞給要隱藏的每個單獨的MSI,刻錄隱藏添加/刪除程序條目。

+0

這不提供問題的答案。要批評或要求作者澄清,請在其帖子下方留言。 - [來自評論](/ review/low-quality-posts/13563451) –

+0

行。我編輯了我的答案。希望現在更清楚。 – Gerhard

相關問題