Копия, если не существуют в WiX

У меня есть файл конфигурации, myapp.exe.config, который я хочу установить, только если он уже не существует. Таким образом, я не хочу перезаписывать любой существующий файл конфигурации. Как это может быть сделано в WiX?

(В конечном счете я должен буду сделать что-то более сложное с настройками, имея значения по умолчанию и переопределения и так далее. Но тем временем я просто ищу краткосрочную фиксацию.)

9
задан Stein Åsmul 29 August 2016 в 19:37
поделиться

1 ответ

То, что вы описываете, является поведением по умолчанию, если файл является ключевым путем компонента. Например, следующий компонент не будет установлен, если foo.config уже существует (или в случае файла с версией, если уже существует файл с таким же или большим номером версии):

<Component Id="foo.config">
   <File Source="foo.config"/>
</Component>

Примечание что если у вас есть несколько файлов в вашем компоненте, то только один может быть keypath. Вы можете контролировать это, установив для атрибута KeyPath файла значение yes . Но рекомендуемая стратегия - иметь только один файл для каждого компонента, и в этом случае файл автоматически становится ключевым путем компонента.

edit : обратите внимание, что это поведение по умолчанию можно переопределить с помощью свойства REINSTALLMODE . Вы можете открыть свой MSI с помощью orca и посмотреть, устанавливается ли это свойство в таблице свойств.

12
ответ дан 4 December 2019 в 12:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: