簡體   English   中英

WiX MSI升級不允許安裝某些組件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM