2015-02-11 107 views
4

是否有任何方法基於舊的MSI安裝程序和新的MSi安裝程序創建次要升級(補丁文件即.msp)或msi。我們希望爲客戶提供次要升級補丁(.msp或.msi0,其中僅包含更改
1)我已創建(舊)Test.msi,基於4個.wxs文件。這4個wxs文件有助於安裝嚮導步驟。下面是例子。MSI WIX:使用2個MSI創建次要升級補丁

Welcome.wxs文件:我們與我們的項目形象 Main.wxs的參考剛纔提到的歡迎郵件文件:包含WXS sourcse文件的compononets和功能的實際腳本。 InstallerPath.wxs:凡用戶可以選擇自己的安裝路徑

LicenseAgrement.wxs:許可aggrement mentione對話框文件。

2)我只更改了產品版本號並修改了幾個我的項目文件,並添加了幾個新文件。
3)然後,我創建了(新)Test.msi,基於這4個.wxs文件。
4)通過使用這些舊的和新的安裝程序,我如何genreate修補程序(.msp或.msi)爲次要升級。

回答

3

如果你想這樣做,兩個MSI的,那麼這是一個出發點:

http://wixtoolset.org/documentation/manual/v3/patching/patch_building.html

再就是威克斯補丁:

http://wixtoolset.org/documentation/manual/v3/patching/wix_patching.html

或作爲第一個變化一,您可以創建自己的.CPCP文件並從Windows套件運行msimsp,如下所述:

https://msdn.microsoft.com/en-us/library/aa367816(v=vs.85).aspx

+0

感謝PhilDW。在上面的URL中,他們提到了使用單個wxs文件創建修補程序的過程。並且他們通過使用torch commmnad與.wixpdb文件(它僅從一個wix源文件生成)創建diff.wixmst(torch.exe -p -xi 1.0 \ product.wixpdb 1.1 \ product.wixpdb -out patch \ diff。 wixmst)。 **我的問題在這裏,如果我們有多個WIX sourse文件,並且使用msi(舊安裝程序和新安裝程序)創建diff.wixmst?**) – mallikgm 2015-02-12 12:08:52

+0

修補程序需要Windows SDK情況下的兩個MSI文件,運行帶有pcp文件的msimsp,這是兩個MSI文件場景。 WiX有一些基於Xml文件的幫手。這裏描述了三種常用方式,我會選擇適合您的具體情況的方法。 – PhilDW 2015-02-12 19:47:15

+0

感謝PhilDW。現在可以創建補丁。但修補程序更改不反映(使用修補程序安裝)。我能夠在「程序和功能」和補丁信息(在「已安裝的更新」中)中看到版本更改。其實我的main.wxs引用另一個文件.msm(我們有一個文件夾「AppHome」,其中包含應用程序主文件,並通過使用熱量來收集它,並生成app_home.wxs並使用蠟燭和光源生成app_home.msm)在我們的main.wxs(我們配置所有快捷方式,另一個批處理文件和幫助,手冊pdf)中引用並生成最終的MSI。 – mallikgm 2015-02-19 11:38:18

1

只是提供了一個鏈接,作爲最後一個鏈接的附加信息,PhilDW已經給出了:如果您想通過自己的應用程序/框架調用修補程序生成功能,那麼可以使用它。然後,您可以直接從MS直接定位PatchWiz.dll,而無需使用msimsp。

https://msdn.microsoft.com/en-us/library/aa370590%28v=vs.85%29.aspx

但MsiMsp當然是一個簡單的第一項。基本上它只是這個DLL的外殼。

但是:創建.pcp文件並不是每個人都喜歡的...爲希望深入此處的人保留。 但是如果你想要它,一旦你理解了所有的點,它可能比手動更安全。