1
我正在爲現有產品編寫一個安裝程序,早期的安裝程序是在NSIS(Nullsoft腳本安裝系統)中編寫的。我必須使用WiX爲此產品編寫基於msi的安裝程序。我對此有一些疑問: -使用WiX編寫可升級的msi軟件包
- 如何檢測我的應用程序是否安裝在目標機器上?應用程序可能已經使用NSIS(舊版本)或MSI(現在開始)安裝。
- 如何編寫WiX安裝程序,如果目標機器上安裝了較舊/相同版本的產品,則可以升級該安裝程序。我在幾個網站上發現了這個主題,但所有這些都不起作用。具體而言,我想知道哪些信息(GUID,版本等)需要在每個軟件版本的安裝程序代碼中進行更改。
- 我們產品的三/四個版本每年發佈一次。什麼樣的安裝程序最適合我?
請注意,如果我只是在Wix代碼中更改產品元素的版本,則較新的安裝程序無法替換較舊的安裝程序。當我雙擊安裝程序的較新版本時,它會顯示一個錯誤對話框說明
此產品的其他版本已安裝。此版本的安裝不能continue.To配置或刪除這個產品的現有版本,使用添加/刪除控制面板上的程序」
示例代碼:
<?xml version='1.0' encoding='windows-1252'?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension" >
<Product Name='Baton' Id='41B8F929-B6CF-41BE-9E40-C96D9BD6D672'
UpgradeCode='E1F03FA4-D470-4FA6-86BA-F5CDD3007C1D'
Language='1033' Codepage='1252' Version='1.0.0' Manufacturer='Company Name.'>
<Package Id='*' Keywords='Installer' Description="product Installer"
Comments='product comments'
InstallerVersion='100' Languages='1033' Compressed='yes'
SummaryCodepage='1252' />
<Upgrade Id='E1F03FA4-D470-4FA6-86BA-F5CDD3007C1D'>
<UpgradeVersion OnlyDetect='no' Property='PREVIOUSFOUND' Minimum='1.0.0'
IncludeMinimum='yes' Maximum='1.1.0' IncludeMaximum='yes' />
</Upgrade>
<!-- ***Install execution sequence*** -->
<InstallExecuteSequence>
<RemoveExistingProducts After="InstallInitialize"/>
我建議你下次專注於一個特定的問題。爲3個或4個半相關問題的集合編寫一個連貫的答案是很困難的。我剛剛回答(我認爲是)主要問題。 – 2009-12-04 00:30:26