WIX - значительное обновление Удаление файлов, которые он не устанавливал - PullRequest
2 голосов
/ 08 марта 2012

Я разделил установщик WIX на 2 основных MSI: один большой и редко обновляется, а другой небольшой и часто обновляется.

Они оба устанавливаются в один и тот же каталог (т.е. ..program files / MyCompany / MyProduct /), проблема в том, что при обновлении меньшего установщика удаляются файлы из большого установщика.

Как я могу помешать установщику меньшего размера MSI удалить файлы установщика большего размера MSI при серьезном обновлении? Загрузчик обнаруживает (проверяет reg), требуется ли больший MSI, и загружает его по мере необходимости, а предполагается, что меньший всегда требуется.

Я использую WIX 3.6 с загрузчиком по умолчанию для записи.

Загрузчик:

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension" xmlns:netfx='http://schemas.microsoft.com/wix/NetFxExtension'>
<Bundle Name="MyProduct" Version="4.0.6156" Manufacturer="MyCompany" UpgradeCode="cc5f7c9c-8e02-42b7-b202-a3b0865686c5" DisableModify="yes" DisableRepair="yes" UpdateUrl="URI TO SETUP">
    <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.HyperlinkLicense" />
<WixVariable Id="WixStdbaLicenseUrl" Value="URI TO LICENSE AGREEMENT" />
<WixVariable Id="WixStdbaLogo" Value="ClientLogo.png" />
<util:RegistrySearch Id="NetDetect" 
                     Variable="NetFramework" 
                     Root="HKLM" 
                     Key="Software\Microsoft\NET Framework Setup\NDP\v4\Full" 
                     Value="Install" />

<util:ProductSearch Result="version" Guid="DF6C4673-A1B6-419F-B514-DBC096E6CFA8" Variable="ImgagingVersion"/>
    <Chain>
  <ExePackage Compressed="no" 
              DownloadUrl="URI TO DOT NET INSTALLER" 
              Id="DotNet4Install" 
              InstallCondition="NetFramework &lt;&gt; 1" 
              SourceFile="C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\DotNetFX40\dotNetFx40_Full_x86_x64.exe"
              Permanent="yes"
              InstallCommand="/q /norestart /ChainingPackage &quot;MYPRODUCT&quot;"
              PerMachine="yes"
              Vital="yes"/>
  <MsiPackage Compressed="no" 
              DownloadUrl="URI TO LARGER INSTALLER" 
              Id="ImagingInstaller" 
              InstallCondition="ImgagingVersion &lt; v1.0.0.0"
              SourceFile="$(var.WIX.Setup.Accusoft.TargetDir)\LargeInstaller.msi" 
              Vital="yes"
              />
  <MsiPackage Compressed="no" 
              DownloadUrl="URI TO SMALLER INSTALLER" 
              Id="ClientServiceInstall"
              SourceFile="$(var.WIX.Setup.Client.TargetDir)\SmallInstaller.msi" 
              Vital="yes"/>
    </Chain>
</Bundle> </Wix>

1 Ответ

0 голосов
/ 08 марта 2012

Хорошо, проблема, с которой я столкнулся, заключалась в том, что я увеличивал версию загрузчика при каждом обновлении меньшего установщика MSI, вместо этого я теперь увеличивал только номер версии MSI.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...