2010-04-13 1 views

ответ

36

Установите значение Permanent="yes"Component следующим образом:

<Component Id="LicenseDoc" Guid="*" Permanent="yes"> 
    <File Id ="License.rtf" Source="$(var.SolutionDir)Installer\License.rtf" /> 
</Component> 
+7

Я отправил вопрос к списку рассылки wixusers и получил тот же ответ, но также и отметить постоянный флаг (комплименты Фила Уилсона): Пока все понимают, что Постоянное означает постоянное навсегда. Это не означает «пока я не изменю настройку на не постоянную». Он делает этот компонент постоянным в системе, и я бы не использовал его, если только «постоянный установщик навсегда» - это то, что требуется. – glenneroo

+0

Я возрожу эту тему и спрошу: что, если у вас есть много (200+) файлов, которые вы хотите покинуть? Переход к каждому компоненту и добавление Permanent = «yes» или настройка Guid = «» не соответствуют действительности. – treaz

+1

, но это способ WiX, вы описываете конечное состояние каждого файла, поэтому существует нулевая двусмысленность в отношении того, как должна быть система до/после установки/удаления. Проблема со старыми установщиками заключается в том, что они не обрабатывали всю ошибку, поэтому были бы в странных состояниях. MSI - процесс с сохранением состояния. –

6

Комплименты Фил Уилсон из wixusers списка рассылки:

ВИДЕТЬ SDK документации MSI для компонентов таблицы - установите компонент GUID утратившими (пусто). Эффект от этого заключается в том, что компонент не зарегистрирован (поэтому он не может быть восстановлен), и он не будет удален.

0

Другой способ предотвращения Windows Installer от удаления компонента при удалении является установить пустой или пустой компонент GUID. Это приведет к тому, что компонент будет установлен, но он никогда не будет отслеживаться или удаляться.

Смотрите MSI SDK documentation:. "... если этот столбец (ComponentID) равна нулю установщик не регистрирует компонент и компонент не может быть удален или отремонтировать установщиком Это может быть сделано намеренно, если компонент только необходимый для установки, например, пользовательское действие, которое очищает временные файлы или удаляет старый продукт. Может также оказаться полезным при копировании файлов данных на компьютер пользователя, который не нужно регистрировать. «