2016-08-09 1 views
0

Существует 3 пакета, код приведен ниже. 1.0.0, 1.0.0.1 и 2.0.0.WiX Bundle: Патчи для 1.0.0 не удаляются из программ и функций при установке пакета 2.0.0.

Если установлены 1.0.0, 1.0.0.1 и 2.0.0, View Installed Updates по-прежнему будет иметь 1.0.0.1, указанный как установленный. Он останется там до тех пор, пока последняя версия не будет удалена.

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> 
    <Bundle Name="Burn Installer" Version="1.0.0" Manufacturer="LANSA" UpgradeCode="AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA" Copyright="..." AboutUrl="..."> 
    <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" /> 
    <Chain> 
     <MsiPackage Id="MainPackage" SourceFile="TESTLIST_v1.0.0_en-us.msi" Vital="yes" DisplayInternalUI="yes" /> 
    </Chain> 
    </Bundle> 
</Wix> 

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> 
    <Bundle Name="Patch 1.0.0.1" ParentName="Burn Installer" Version="1.0.0.1" Manufacturer="LANSA" UpgradeCode="AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA" Copyright="..." AboutUrl="..."> 
    <RelatedBundle Id="AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA" Action="Patch"/>  
    <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" /> 
    <Chain> 
     <MspPackage Id="Patch" SourceFile="TESTLIST_v1.0.0.1_en-us.msp" Vital="yes" DisplayInternalUI="no" PerMachine="yes" Permanent="no"/> 
    </Chain> 
    </Bundle> 
</Wix> 


<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> 
    <Bundle Name="Burn Installer" Version="2.0.0" Manufacturer="LANSA" UpgradeCode="AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA" Copyright="..." AboutUrl="..."> 
    <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" /> 
    <Chain> 
     <MsiPackage Id="MainPackage" SourceFile="TESTLIST_v2.0.0_en-us.msi" Vital="yes" DisplayInternalUI="yes" /> 
    </Chain> 
    </Bundle> 
</Wix> 

Когда Upgrade применяется, все предыдущие версии и патчи должны быть исключены из Программы и компоненты и/или установленных обновлений. Точно так же, как это происходит, когда MSI/MSP установлены напрямую, а не через Bundler.

ответ

1

Ответ на WiX 3.9, а затем как следует ...

В крупном обновлении пучки UpgradeCode должны совпадать. «AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA» в примере ниже.

В патч-пакетах код обновления должен быть уникальным, не связанным с любым другим GUID, используемым в любом комплекте. «CCCCCCCC-CCCC-CCCC-CCCC-CCCCCCCCCCCC» в этом примере.

В комплекте с крупными обновлениями связанныйBundle должен быть уникальным. Этот GUID используется во всех исправлениях для этого основного обновления. «BBBBBBBB-BBBB-BBBB-BBBB-BBBBBBBBBBBB» в примере.

Эти настройки также гарантируют, что основные обновления указаны в разделе «Программы и компоненты», а исправления указаны в «Просмотр установленных обновлений».

<Bundle Version="1.0.0" UpgradeCode="AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA"> 
    <RelatedBundle Id="BBBBBBBB-BBBB-BBBB-BBBB-BBBBBBBBBBBB" Action="Detect" /> 
</Bundle> 
<Bundle Version="1.0.0.1" UpgradeCode="CCCCCCCC-CCCC-CCCC-CCCC-CCCCCCCCCCCC"> 
    <RelatedBundle Id="BBBBBBBB-BBBB-BBBB-BBBB-BBBBBBBBBBBB" Action="Patch" /> 
</Bundle> 
<Bundle Version="2.0.0" UpgradeCode="AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA"> 
    <RelatedBundle Id="DDDDDDDD-DDDD-DDDD-DDDD-DDDDDDDDDDDD" Action="Detect" /> 
</Bundle> 
+0

Это работало на меня, за исключением удаления патча, не уменьшающего пакет MSI до исходной версии. Получили ли вы это и на работе? –

+0

@ChristopherPainter Да, это сработало для меня. И мы прекратили это использование WiX, поскольку автор WiX указал, что это не то, как он должен был использоваться. Поскольку существует ряд других неразрешимых проблем, и он был сильно против этого, мы решили нашу потребность по-другому. – RobG

Смежные вопросы