第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

WIX不會卸載舊版本

WIX不會卸載舊版本

心有法竹 2020-02-02 15:16:22
經(jīng)過一番谷歌搜索后,我想到了一個配置,該配置應(yīng)允許我僅安裝軟件包的較新版本(確實(shí)如此),而替換已安裝的較舊版本(卻沒有)。我的wxs文件如下:<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">    <Product Id="*"             Name="Gdml File Viewer" Language="1033"             UpgradeCode="5fb07c15-32a5-4b8a-9794-e4425bfc2eea"             ...>        <Package InstallerVersion="200"                 Compressed="yes"                 InstallScope="perMachine" Platform="x64" />        <MajorUpgrade Schedule="afterInstallValidate"                      DowngradeErrorMessage="A later version of [ProductName] is already installed"                 AllowSameVersionUpgrades="no"                 AllowDowngrades="no" />...正如預(yù)期的那樣,它確實(shí)允許我安裝較新的版本,但未卸載較舊的版本。它仍然顯示在“應(yīng)用和功能”列表中:
查看完整描述

2 回答

?
眼眸繁星

TA貢獻(xiàn)1873條經(jīng)驗(yàn) 獲得超9個贊

大型升級失?。寒?dāng)您在“添加/刪除程序”中看到兩個條目時,大型升級失敗了(通常)。您需要修復(fù) Upgrade表的配置。請參閱下面列出的可能原因。


最小WiX標(biāo)記:默認(rèn)升級表的最小WiX標(biāo)記-具有正常參數(shù)(效果很好,請參見下面的屏幕截圖)-只是:


<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />

進(jìn)階:甚至可以將上述用于簡單主要升級配置的“便利元素”與舊樣式元素組合在一起,以完全控制升級表的內(nèi)容。樣品在這里。


關(guān)于主要升級:MajorUpgrade和Upgrade元素。如何使用它們:


如何避免在Windows Installer / MSI中安裝兩個版本的產(chǎn)品?

在MSI UpgradeTable中添加條目以刪除相關(guān)產(chǎn)品

可能的原因:重大升級失敗的許多可能原因的簡短摘要。


升級代碼不匹配:MSI的新舊版本之間的升級代碼可能不匹配,因此這些產(chǎn)品未標(biāo)識為相關(guān)。此后應(yīng)保留兩個版本(從未發(fā)生過卸載舊版本)。


缺少升級代碼:只需添加一下,Product元素中就有可能缺少升級代碼。通常這是一個錯誤,除非您想做一些特別奇怪的事情。


Missing MajorUpgrade元素:可能缺少整個Major Upgrade元素,并且不存在Upgrade元素。后者用于主要升級的手動配置,前者用于典型主要升級方案的“自動魔術(shù)”實(shí)施。某種“最佳實(shí)踐”。


ProductVersion:產(chǎn)品版本中的前3個數(shù)字可能沒有一個或多個(第四個字段被忽略)。


產(chǎn)品代碼:作為一個旁注,您可能會收到一條警告,指出已安裝該產(chǎn)品,這表示該產(chǎn)品代碼未更改(應(yīng)進(jìn)行重大升級)。


懸掛的版本:您的WiX標(biāo)記也可能不錯,并且懸掛的舊版本從未正確配置,如果這樣,請手動將其卸載,然后重試或嘗試使用干凈的虛擬機(jī)。如果自動生成產(chǎn)品GUID,則在主要升級設(shè)置不正確的情況下,最終可以同時安裝多個版本的產(chǎn)品。


安裝上下文:MSI文件可以按用戶或按計(jì)算機(jī)安裝。如果按用戶安裝,然后按計(jì)算機(jī)安裝,它將不會檢測到以前的版本。您的軟件包中是否有對ALLUSERS的硬編碼引用?


SecureCustomProperties:很快-我記得-在安全環(huán)境(企業(yè)環(huán)境中運(yùn)行的用戶沒有管理員權(quán)限)中,您需要將“升級”表中的ACTION屬性添加到安全屬性列表中(允許傳遞給延遲模式的屬性)。


軟件包代碼:我看到的一個非常特殊的情況是,新軟件包與舊軟件包具有相同的軟件包代碼(或現(xiàn)有的已安裝軟件包)。這是一個極端的設(shè)計(jì)錯誤,絕不會發(fā)生。始終自動生成程序包代碼,這是正確的操作方式。Windows Installer會按照定義將這兩個程序包視為相同(與實(shí)際情況相反)。


更多詳細(xì)信息:還有一些需要記住的事情:


本質(zhì)上,主要的升級是卸載舊版本并安裝新版本,并為操作發(fā)生的順序提供許多計(jì)劃選項(xiàng)(先安裝新版本,然后卸載舊版本,反之亦然)。


如上所述,您還可能在包裝盒上安裝了錯誤的較舊版本,但配置不正確,或者發(fā)生了一些X-Files廢話,導(dǎo)致升級失敗。發(fā)生。


WiX不太可能,但是InstallExecuteSequence中可能缺少標(biāo)準(zhǔn)操作RemoveExistingProducts。


WiX學(xué)習(xí)曲線:建議使用一些示例來幫助加快學(xué)習(xí)過程。唯一真正有用的東西嗎?以下是一些WiX快速入門建議。那里有示例鏈接。


最少的WiX樣本:有一個舊樣本:透明鋁。從本質(zhì)上講解了如何使用 Votive創(chuàng)建基于WiX的安裝程序。它包括一個主要的升級元素。我相信這種簡單的配置可以為您尋求的降級提供保護(hù):


<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />

請參閱以下升級表:


逆戟鯨


測試用例:使用透明鋁作為測試項(xiàng)目,您可以嘗試以下過程來使升級工作:


將產(chǎn)品代碼設(shè)置為*,以便為每個版本(“ <Product Id="*" ...")自動生成一個新的ProductCode 。

編譯您的MSI的第一個版本。在解決方案視圖中的WiX項(xiàng)目上單擊鼠標(biāo)右鍵,然后Visual Studio選擇Open Folder in File Explorer。進(jìn)入bin和Debug或Release。

通過在文件名的末尾添加_1重命名已編譯的MSI。例如:MySetup_1.msi

現(xiàn)在,在WiX來源中增加產(chǎn)品版本字段的前3位數(shù)字之一: <Product Id="*" ... Version="2.0.0"

編譯一個新的MSI并將其重命名:MySetup_2.msi

從版本1開始安裝MSI文件,然后再安裝第二個版本。驗(yàn)證主要升級是否成功。

進(jìn)階:這是一個演示便捷方式的高級演示,它結(jié)合使用了便利元素"MajorUpgrade"和較舊的"Upgrade"元素(可以對生成的升級表進(jìn)行更細(xì)粒度的控制)來配置主要升級:


在MSI UpgradeTable中添加條目以刪除相關(guān)產(chǎn)品


這里是僅使用較舊的Upgrade元素導(dǎo)致更多工作的示例,但完全控制了Upgrade表:Major Upgrade-“ The Old,Manual Way”。


查看完整回答
反對 回復(fù) 2020-02-02
?
一只斗牛犬

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超2個贊

這是正確的,這在MSI SDK文檔中有所說明(您閱讀并仍然詢問嗎?)。另外:答案也為其他人而寫-用于通用。重新表述以前寫過的內(nèi)容是一項(xiàng)練習(xí)和一項(xiàng)實(shí)驗(yàn),以查看是否可以使它變得更好。

查看完整回答
反對 回復(fù) 2020-02-02
  • 2 回答
  • 0 關(guān)注
  • 985 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號