2010-07-02 37 views
1

在維克斯幫助文檔,Using Purely WiX用於修補,樣品補片包括本節:PatchBaseline元素在WiX修補中有什麼作用?

<Media Id="5000" Cabinet="RTM.cab"> 
    <PatchBaseline Id="RTM"/> 
</Media> 

和構建貼片的引用「RTM」,以及該命令:

pyro.exe補丁\ patch.wixmsp退房手續補丁\ patch.msp -t RTM補丁\ diff.wixmst

文檔說的PatchBaseline元素「標識一一套產品版本「,但我不清楚這意味着什麼。

這個元素控制什麼,改變或忽略它的效果是什麼?

回答

2

該元素比其子小於:驗證。看看Validate的屬性,你會看到用補丁來定位產品的不同方法。從備註:

轉換包含目標產品和升級產品之間的差異。當應用變換或補丁(包含變換)時,已安裝產品的以下屬性將根據變換中存儲的目標產品的屬性進行驗證。

  • 產品代碼
  • ProductLanguage
  • 的ProductVersion
  • 的UpgradeCode

Windows安裝程序簡單地驗證了產品代碼,ProductLanguage,並已安裝的產品的UpgradeCode等同於目標產品的那些化子性質用於創建變換;然而,ProductVersion可以通過更大範圍的比較來驗證。

您可以比較ProductVersion的前三個字段。對第四個字段的更改未經驗證,適用於小型更新。您還可以選擇如何將用於創建轉換的目標ProductVersion與已安裝的ProductVersion進行比較。例如,雖然建議使用「Equals」的默認值,但如果您希望將小升級修補程序應用於目標ProductVersion和具有相同ProductCode的所有舊產品,則可以使用'LesserOrEqual'。

0

我也對此感到困惑 - 我會認爲基線是n-1版本嗎?但是在創建第一個MSI時沒有引用RTM?

如果您有三個版本(v1,v2和v3) - PatchBaseline對於每個版本會有什麼作用?

+0

我現在理解它的方式(這可能是錯誤的)是PatchBaseline的主要目的是告訴Windows安裝程序哪些其他補丁位於同一系列中,並相互替代。我發現這個白皮書超級有用:http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ad7ac91e-2493-4549-ae6f-bf5e007c12a3&DisplayLang=en – 2010-09-15 16:31:13