WIX установочные файлы, переопределить - PullRequest
6 голосов
/ 20 января 2012

Привет. Я устанавливаю файлы в каталог, используя WIX, с кодом ниже.

 <Directory Id="CMSICONSDIR" Name="CMSIcons">
    <Component Id="CMSICONSDIR_C" Guid="B0328FBF-D9F7-4278-B16C-28650016FF86" SharedDllRefCount="no" KeyPath="no" NeverOverwrite="no" Permanent="no" Transitive="no" Location="either">
       <CreateFolder/>
       <File Id="AddCamera.png" Name="AddCamera.png" DiskId="1" Source="..\..\OrionVEWorld\bin\Release\CMSICons\AddCamera.png" KeyPath="no"  />
       <File Id="aldownloadsmall.png" Name="al-download-small.png" DiskId="1" Source="..\..\OrionVEWorld\bin\Release\CMSICons\al-download-small.png" KeyPath="no"  /> 

То, как работает мое приложение, заключается в том, что пользователь может копировать свои файлы в этот каталог, переопределяя то, что они предпочитают.

Проблема в том, что когда я делаю следующую установку для обновления, она переопределяет эти файлы файлами, указанными в установке.

Как мне убедиться, что при запуске моя установка непереопределить существующие файлы и добавить только новые.

К сожалению, в другом случае мне нужны файлы, которые переопределяют то, что там есть.

У меня есть раздел сценария обновления, который может повлиять на этокак показано ниже

<Upgrade Id="$(var.UpgradeCode)">
  <UpgradeVersion Minimum="$(var.ProductVersion)" OnlyDetect="no" Property="NEWERVERSIONDETECTED"/>
  <UpgradeVersion Minimum="1.0.0.0"
                  IncludeMinimum="yes"
                  OnlyDetect="no"
                  Maximum="$(var.ProductVersion)"
                  IncludeMaximum="no"
                  Property="PREVIOUSVERSIONSINSTALLED" />
</Upgrade>

Любые предложения приветствуются.

Ответы [ 2 ]

5 голосов
/ 20 января 2012

Вы можете попробовать изменить порядок обновления, изменив последовательность действия RemoveExistingProducts .Вы можете разместить его после InstallFinalize (без 4 варианта в статье ссылки).

Также В этой статье объясняется, как установщик Windows обрабатывает логику перезаписи всего файла.

РЕДАКТИРОВАТЬ: также добавить атрибут «Никогда не перезаписывать» для компонентов.

2 голосов
/ 20 января 2012

Попробуйте добавить атрибут NeverOverwrite к своим компонентам.Это должно сделать свое дело.

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