2013-06-25 2 views
2

Я создаю установщик для программы, использующей WiX. Программа создает файл журнала и файл .dat в каталоге программы во время процесса настройки (после полной установки). Как сообщить WiX об удалении этих файлов во время процесса удаления, если они отсутствуют во время процесса установки?WiX v3.7 - Как удалить файл при удалении, который был создан после установки

Любые предложения были бы весьма полезными.

+0

BTW-Windows Installer это программа, которая делает установки в устройство, так что это звучит странно сказать, «сообщите WiX ...» –

ответ

3

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

Другим способом является размещение элементов RemoveFile под элементом Component, который наиболее тесно связан с использованием этих файлов (например, программы exe).


Вы уверены, что хотите записывать файлы в той же директории, что и программа? Обычно программы устанавливаются так, чтобы их могли изменять только администраторы. Если программа использует данные, которые любой пользователь может изменить для воздействия на всех пользователей, данные будут храниться в профиле ALLUSERS. И данные, которые пользователь может изменить, которые влияют только на этот пользователь, будут храниться в профиле этого пользователя.

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

+0

RemoveFile отлично подойдет для файла .dat, который всегда называется одним и тем же. Однако файлы журнала имеют динамические имена в соответствии с датой их создания. Есть ли способ ссылаться на файл, который вы не знаете полного имени? – user2437443

+0

Я только что нашел ответ на свой вопрос. Чтобы удалить файл, который не знает полного имени, можно добавить подстановочный знак в свойстве «Имя» элемента user2437443

1

Это работает для меня - использовать пользовательскую команду и удалить с помощью «Del» или «RmDir»

http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Forced-remove-of-folder-and-files-within-td698425.html

<Product> 
    <CustomAction Id="Cleanup_logfile" Directory="INSTALLFOLDER" 
    ExeCommand="cmd /C &quot;del install.log&quot;" 
    Execute="deferred" Return="ignore" HideTarget="no" Impersonate="no" /> 

    <InstallExecuteSequence> 
     <Custom Action="Cleanup_logfile" After="RemoveFiles" > 
     REMOVE="ALL" 
     </Custom> 
    </InstallExecuteSequence> 
</Product> 

 Смежные вопросы

  • Нет связанных вопросов^_^