Перезаписать : важно ли, чтобы файл никогда не перезаписывался? Если так, добавьте
«Никогда не перезаписывайте» свой компонент. Атрибут 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
(где-то в профиле пользователя) при запуске приложения, а затем выполняйте над ними операции, которые влекут за собой удаление файлов. Это хорошо в тех случаях, когда вы хотите сделать что-то, что изменяет рассматриваемые файлы (они должны быть доступны для записи). Тогда хорошо «распутать» их из соображений развертывания (файлы вообще не будут вмешиваться в операции установки - установщик о них не знает). Однако исходная копия, доступная только для чтения, установленная в программных файлах, может быть удалена (больше не нужна?).
Другие подходы : Вы также можете создавать такие файлы, используя настраиваемые действия во время установки (обычно только текстовые файлы), вы можете загрузить соответствующий файл с вашего веб-сайта при запуске приложения (делает файл простым в управлении и обновлении / замене? Уязвим к проблемам с подключением - брандмауэры и т. д.), и приложение может создать файл, используя "внутренние настройки по умолчанию" в главном исполняемом файле при запуске. И нет никаких сомнений в дальнейших подходах, которые я не могу вспомнить.