2013-08-30 24 views
1

我有一箇舊的安裝程序,它是一個基本的Visual Studio安裝項目,現在它已被WIX安裝程序取代。新的Wix安裝程序工作正常,期望我有必要。Wix將替換Visual Studio安裝程序的安裝

許多客戶端都安裝了舊版本,現在,在我們產品的下一個版本中,我們需要使用這個Wix安裝程序。

我需要Wix安裝程序來替換舊的安裝,而無需通過控制面板卸載以前的版本。

我已經試過把同樣的產品代碼和以前一樣,也改變升級代碼,它不工作。

有誰知道是否有可能VS安裝程序更換設施與維克斯安裝程序

維克斯

<?define Product.UpgradeCode = "{60DA573D-4C8A-48CA-ADA5-9C130A7100E8}" ?> 
<?define Product.ProductCode = "{1A65C362-E880-4F2A-ADEF-B1D83A87C914}" ?> 

<Product Id="$(var.Product.ProductCode)" 
      Name="My Application" 
      Language="1033" 
      Version="$(var.REVISION)" 
      Manufacturer="My Manufacturer" 
      UpgradeCode="$(var.Product.UpgradeCode)"> 
      ... 
      ... 
<MajorUpgrade Schedule="afterInstallInitialize" 
    DowngradeErrorMessage="A later version of MY PRODUCT is already installed." /> 

<Upgrade Id="$(var.Product.UpgradeCode)"> 
<UpgradeVersion Minimum="$(var.BUILD)" 
    IncludeMinimum="no" OnlyDetect="yes" 
    Property="NEWERVERSIONDETECTED" /> 
    <UpgradeVersion Maximum="$(var.PREVBUILD)" 
    IncludeMaximum="yes" OnlyDetect="no" 
    Property="OLDERVERSIONBEINGUPGRADED" /> 
</Upgrade> 

錯誤消息

Error

+1

VS安裝程序和WIX安裝程序都提供msi,這方面沒有區別。 msi的內容可能會有所不同。 $ var.Revision更高?並且您的wix文件中有一個MajorUpgrade元素:http://wixtoolset.org/documentation/manual/v3/howtos/updates/major_upgrade.html – rene

+0

@rene是的,$(var.REVISION)高於舊版本。 – Saxophonist

+1

http://stackoverflow.com/questions/11119838/wix-installer-cant-upgrade-from-previously-installed-windows-installer-sw?rq=1這可能是真的嗎? – rene

回答

4

該錯誤消息意味着你的產品代碼並沒有改變。您希望UpgradeCode相同,但您希望ProductCode在每個構建中都是唯一的。要達到此目的,請將其設置爲「*」,編譯器將在構建時創建一個。

如果您隨後安裝但在添加刪除程序中獲得2個條目,那意味着您的MajorUpgrade規則存在問題。

+0

只是完全按照你的建議,並沒有得到2條ARP。 :( – Saxophonist

+0

不應該保持與我的舊VS安裝程序相同的產品代碼,並且只更改Updagrade代碼? – Saxophonist

+2

儘管我明白這聽起來合乎邏輯,但情況正好相反。升級代碼保持不變並且ProductCode更改。原因是 –