2013-01-18 82 views
6

我正在將一些東西從Visual Studio 2008遷移到2012.我的一個項目包含2012年不再支持的安裝項目。我決定重新構建它在WiX 3.6中。我創建了一個WiX安裝項目來設置我的文件和另一個WiX捆綁項目,以將我的先決條件與安裝項目捆綁在一起。從VS安裝項目升級時Bundle的版本和升級代碼與WiX的安裝

現在,我希望這個安裝項目可以與以前的安裝無縫地工作,如果可能的話。例如,我使用VS2008中的VS setup項目創建的setup.exe,在其系統上安裝了1.0版本的機器。現在我已經使用由VS2012中的WiX bundle項目創建的setup.msi編譯了2.0版本。當版本2.0 msi運行時,我希望它能識別出安裝了相同設置的較早版本並對該更新進行了預製(或重新安裝)。

所以我的問題是,每個軟件包和安裝項目都包含它們自己的UpgradeCode和Version。哪一個應該會收到我1.0版本安裝程序的UpgradeCode?當我現在和將來版本,我是否版本一或二?

回答

4

我或多或少地通過嘗試不同的事情來想清楚它。當引導程序安裝時,這是放入「添加/刪除程序」菜單中的內容。因此,我認爲引導程序的升級代碼應該與我的舊軟件包的升級代碼相匹配。然後安裝程序會立即知道以前的版本已安裝,應在卸載之前先卸載。 msi的升級代碼應該是另一個唯一的代碼。然後,msi項目和bootstrapper項目的版本應該在每次構建時更新。

+5

當束進行升級時,如果它支持升級每個內部封裝可以升級本身。因此,您應該能夠爲您的msi軟件包保留相同的升級代碼,併爲該軟件包提供新的升級代碼。您的解決方案適用於包含單個msi的捆綁包,但在您需要打包/升級多個msis時發生故障。 –