Как остановить удаление файлов при удалении с помощью Wix - PullRequest
2 голосов
/ 08 апреля 2019

При удалении моего приложения я хотел бы настроить для Wix значение НЕ , чтобы удалить несколько файлов, которые были добавлены в процессе установки. Кажется, что деинсталлятор удаляет все файлы, которые были первоначально установлены из файла MSI. Как я могу это сделать?

Вот мои файлы, которые я хочу сохранить навсегда

<Binary Id="RootCABinary" SourceFile="Assets\Certificates\RootCA.cer" />
<Binary Id="SubCABinary" SourceFile="Assets\Certificates\SubCA.cer" />

Я использовал WixIIsExtension.dll для установки этих сертификатов в хранилище Windows.

Ответы [ 2 ]

1 голос
/ 08 апреля 2019

Перезаписать : важно ли, чтобы файл никогда не перезаписывался? Если так, добавьте «Никогда не перезаписывайте» свой компонент. Атрибут WiX: NeverOverwrite="yes". Не забудьте протестировать сценарии обновления!


Постоянный компонент : Как сказал Павел, вы можете установить постоянный компонент:

<Component Permanent="yes">
    <File Source="License.rtf" />
</Component>

Пустой GUID : еще один способ сделать это - установить blank component GUID. По сути это означает «установить, а затем оставить в покое» . Не нужно выполнять восстановление или удаление (не забудьте добавить NeverOverwrite="yes", если файл никогда не следует перезаписывать):

<Component Guid="" Feature="MainApplication">
    <File Source="SubCA.cer" KeyPath="yes" />
</Component>

Копия только для чтения : иногда я устанавливаю файлы в per-machine path (например, где-то в программных файлах), а затем копирую их в per-user location (где-то в профиле пользователя) при запуске приложения, а затем выполняйте над ними операции, которые влекут за собой удаление файлов. Это хорошо в тех случаях, когда вы хотите сделать что-то, что изменяет рассматриваемые файлы (они должны быть доступны для записи). Тогда хорошо «распутать» их из соображений развертывания (файлы вообще не будут вмешиваться в операции установки - установщик о них не знает). Однако исходная копия, доступная только для чтения, установленная в программных файлах, может быть удалена (больше не нужна?).


Другие подходы : Вы также можете создавать такие файлы, используя настраиваемые действия во время установки (обычно только текстовые файлы), вы можете загрузить соответствующий файл с вашего веб-сайта при запуске приложения (делает файл простым в управлении и обновлении / замене? Уязвим к проблемам с подключением - брандмауэры и т. д.), и приложение может создать файл, используя "внутренние настройки по умолчанию" в главном исполняемом файле при запуске. И нет никаких сомнений в дальнейших подходах, которые я не могу вспомнить.

1 голос
/ 08 апреля 2019

Поместите свои двоичные файлы в отдельный компонент WiX и сделайте его постоянным. Взгляните на эту нить , а также

...