WiX v3.7 - Как удалить файл при деинсталляции, созданный после установки

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

Любые предложения будут ценны.


person user2437443    schedule 25.06.2013    source источник
comment
Кстати, установщик Windows - это программа, которая выполняет установку, поэтому звучит странно говорить WiX о ....   -  person Tom Blodget    schedule 25.06.2013


Ответы (2)


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

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


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

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

person Tom Blodget    schedule 25.06.2013
comment
RemoveFile отлично работал с файлом .dat, который всегда называется одним и тем же. Однако файлы журнала имеют динамические имена в соответствии с датой их создания. Есть ли способ сослаться на файл, полное имя которого вам неизвестно? - person user2437443; 25.06.2013
comment
Я только что нашел ответ на свой вопрос. Чтобы удалить файл, полное имя которого вам неизвестно, можно добавить подстановочный знак в свойстве «Имя» элемента ‹RemoveFile›. - person user2437443; 26.06.2013

У меня это сработало - используйте специальную команду и удалите с помощью "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>
person Artur Witek    schedule 24.09.2013