[英]WiX MSI upgrade disallows installation of some components
當我嘗試對項目進行升級時,我得到了大約八個左右組件的以下日志:
MSI (c) (24:EC) [11:50:17:422]: Disallowing installation of component: {290E89A8-6BA7-59F2-B350-BE657C2823BC} since the same component with higher versioned keyfile exists
升級的卸載部分似乎刪除了所有以前安裝的文件,但是在升級過程中安裝新文件時,似乎不允許安裝八個左右的組件/文件。 升級成功,但是這八個文件不存在。 我使用以下標准進行升級(順便說一下,我的產品ID是*):
<Upgrade Id="{16B40AC6-1F80-47CD-9955-BDCC5BB297E4}">
<UpgradeVersion Minimum="$(var.InstallerVersion)" Property="NEWPRODUCTFOUND" OnlyDetect="yes" IncludeMinimum="no" Language="1033" />
<UpgradeVersion Minimum="0.0.0" Maximum="$(var.InstallerVersion)" Property="OLDPRODUCTFOUND" OnlyDetect="no" IncludeMinimum="yes" IncludeMaximum="yes" Language="1033" />
</Upgrade>
<InstallExecuteSequence>
...
<RemoveExistingProducts Before="InstallInitialize" />
...
</InstallExecuteSequence>
我已嘗試使用此處描述的步驟來解決此問題,但沒有成功。 誰能闡明我如何能夠在升級中安裝新文件? 奇怪的是,如果我通過“程序和功能”卸載舊版本,然后安裝新版本,則它將運行並安裝所有文件(因此,在不升級時可以運行),但是在升級時卻可以沒有安裝我的一些文件。
編輯 :碰巧將REINSTALLMODE屬性設置為amus會強制其重新安裝文件,而不管版本和校驗和如何,並且由於默認值為omus ,因此現在可以正常工作,但是我不確定這是否是最佳方法:
<Property Id="REINSTALLMODE" Value="amus" />
這個問題似乎是一個反復出現的問題,類似於以下內容:
http://support.microsoft.com/kb/905238
Windows決定不安裝文件,因為存在更高版本,但事實證明我們正在進行重大升級時,它不會重新評估該決定。 我認為此問題已在MSI 4.5中修復。
在CostInitialize之前執行RemoveExistingProducts應該可以解決該問題,但是如果您使用該功能,則會在升級過程中遇到一些ICE錯誤並丟失功能遷移。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.