InstallShield удалить файл, изначально не установленный при удалении с помощью RemoveFile
Во-первых, я знаю, что есть аналогичные вопросы по SO, но я еще не нашел ни одного ответа, который бы подходил моей проблеме.
InstallShield 2009 устанавливает мою программу, а моя программа создает INI-файл. Когда программа удаляется, она покидает ini (потому что ее не было в исходной установке). Я пытался использовать RemoveFile в прямом редакторе. Я дал ему свойство, правильный режим установки, но я понятия не имею, что такое "Компонент" или что я должен с ним делать. Я просмотрел каждый файл справки InstallShield и посмотрел онлайн, но все, что описывает "компонент", крайне неоднозначно. Отладчик не выдает никаких ошибок или предупреждений, связанных с RemoveFile, но файл продолжает оставаться, когда я запускаю новый деинсталлятор. Я боролся с этой проблемой в течение многих дней и пробовал все виды вещей в RemoveFile безрезультатно!
Просто... Я просто хочу удалить INI, который находится в каталоге установки, где он устанавливает исполняемый файл. Как проще всего это сделать, и что такое "Компонент"?
1 ответ
Компонент требуется установщику Windows, чтобы определить, нужно ли вообще обрабатывать "инструкцию удаления файла". Я процитировал этот термин, потому что на самом деле такого термина нет - просто для простоты объяснения.
Таким образом, если компонент запланирован для установки (включен в устанавливаемую функцию, условие разрешается в true), а InstallMode имеет значение "удалить при установке или оба", установщик Windows попытается найти файлы, указанные в FileName. находится в DirProperty и попытается удалить его.
Если компонент запланирован для удаления, а InstallMode имеет значение "удалить при удалении или оба", та же логика будет работать при удалении.
В случае, если компонент не должен быть установлен / удален (например, устанавливается другая функция или условие ложно), "Инструкция по удалению файла" будет игнорироваться установщиком Windows.
Надеюсь, теперь это имеет больше смысла.