WIX Updater не использует параметры установки из предыдущей версии - PullRequest
0 голосов
/ 05 апреля 2019

У меня есть установщик проекта wix.Я хочу использовать обновленную новую версию моего продукта.Он работает нормально, но все равно показывает мне все диалоговые окна, и мне нужно ввести параметры (например, путь установки, учетные данные пользователя и другие).Как я могу пропустить все диалоги и использовать все эти параметры из более старой (предыдущей) версии установщика.

<Product Id="*" Name="$(var.ProductName) $(var.ProductVersion)" Language="1033" Version="$(var.ProductVersion)" Manufacturer="$(var.Manufacturer)" UpgradeCode="$(var.UpgradeCode)">
<Package InstallerVersion="301" Compressed="yes" InstallScope="perMachine" Platform="x64" />

<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." AllowSameVersionUpgrades="yes" />
<MediaTemplate EmbedCab="yes" />

<Feature Id="ProductFeature" Title="COMPANY.Product.Installers.Server" Level="1">
  <ComponentGroupRef Id="ProductComponents" />
  <ComponentGroupRef Id="ServerInstallerFiles" />
</Feature>
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER" ></Property>
<UIRef Id="WixUI_MinimalCustom"/>
<InstallExecuteSequence>
  <Custom Action="DoAfterInstallJobParams" Before="DoAfterInstallJob">Not Installed or REINSTALL</Custom>
  <Custom Action="DoAfterInstallJob" After="InstallFiles">Not Installed or REINSTALL</Custom>
  <Custom Action="DoBeforeUnstallJob" After="InstallInitialize">REMOVE="ALL"</Custom>
</InstallExecuteSequence>
</Product>

<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
  <Directory Id="ProgramFiles64Folder">
    <Directory Id="INSTALLFOLDER" Name="COMPANY" />
  </Directory>
</Directory>
</Fragment>

<Fragment>
<Property Id="DoBeforeUninstallJob" Value="[INSTALLFOLDER]" />
<Binary Id="CustomActionBinary" SourceFile="$(var.SolutionDir)Output\Installers\Actions\COMPANY.Product.Installers.Server.Actions.CA.dll" />
<CustomAction Id="DoAfterInstallJob" BinaryKey="CustomActionBinary" DllEntry="AfterInstall" Execute="deferred" Return="check" Impersonate="no" />
<CustomAction Id="DoAfterInstallJobParams" Property="DoAfterInstallJob" Value="HOSTING_URL=[HOSTING_URL];DB_CONNECTION=[DB_CONNECTION];INSTALLPATH=[INSTALLFOLDER];LOGIN=[LOGIN];PASSWORD=[PASSWORD]" />
<CustomAction Id="DoBeforeUnstallJob" BinaryKey="CustomActionBinary" DllEntry="BeforeUninstall" Execute="deferred" Return="check" Impersonate="no" />
</Fragment>

<Fragment>
<ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
  <ComponentRef Id="cmpServerHost"/>
</ComponentGroup>
</Fragment>

<Fragment>
<DirectoryRef Id="INSTALLFOLDER">
  <Directory Id="ServerHost" Name="ServerHost">
    <Component Win64="yes" Id="cmpServerHost" Guid="a4a81104-1e30-463d-87e1-e8a79b4c6829">
      <File Id="ServerLog4netConfig" Source="$(var.SolutionDir)..\Logging\log4net.config" />
      <RegistryValue Root="HKLM" Key="Software\[Manufacturer]\$(var.ProductName)" Type="string" Value="[INSTALLFOLDER]" KeyPath="yes" Name="COMPANYInstallPath"/>
      <File Id="AppVersion" Source="$(var.SolutionDir)Output\Installers\Actions\COMPANY.Product.Installers.Server.Actions.CA.dll" />
    </Component>
  </Directory>
</DirectoryRef>
</Fragment>

Ответы [ 2 ]

0 голосов
/ 05 апреля 2019

Запоминание свойств : Сохранение свойств позволяет считывать настройки из первой версии.

Управление диалогами и порядок : чтобы пропустить диалоги, вам необходимо определить, происходит ли серьезное обновление, если вы используете крупные обновления (которые вы делаете на основе этого источникафайл), а затем управляйте потоком диалога, соответственно, используя условия и значения свойств.Это требует немало работы и тестирования.Я бы избегал этого, если бы вы могли.

Простой режим : просто отключить (защита от записи) или скрыть поля диалогов, которые содержат настройки, записанные в первой настройке, могут бытьпредпочтительнее (вместо изменения последовательности диалога).Вы можете использовать условия и условия для обеих целей.


Графический интерфейс обслуживания : для небольших обновлений восстановление и удаление диалогового набора будут отличатьсяиз оригинальной установки.Вы получите "maintenance dialog set", а не "installation dialog set".

Major Upgrade : особенностьпроисходит при установке обновлений через установщик Windows major upgrade mechanism.Из-за того, как это работает технически, вы также получаете диалоговое окно установки для новой версии.Это потому, что это технически новая установка этого нового кода продукта.Тот факт, что более старая версия удаляется как часть процесса, не имеет значения.Вы не устанавливаете новую минорную версию, вы деинсталлируете и переустанавливаете эффективно.

WIX_UPGRADE_DETECTED : есть свойство, установленное в стандартном пакете WiX.Это WIX_UPGRADE_DETECTED.Он может быть использован для определения, когда происходит серьезное обновление, и, следовательно, используется в условиях для настройки порядка диалога установки основного обновления. Вот более подробная информация об этом свойстве вместе с описанием UPGRADINGPRODUCTCODE - это еще одно свойство, которое устанавливается в удаляемой установке (не в новой устанавливаемой).

Время истекло.Сохранение этого, будет обновлено позже.


Некоторые ссылки :

0 голосов
/ 05 апреля 2019

Установщик Windows не сохраняет свойства.Вы должны сделать это самостоятельно.Вот пример.

http://robmensching.com/blog/posts/2010/5/2/the-wix-toolsets-remember-property-pattern/

...