InstallShield удалить файл, изначально не установленный при удалении с помощью RemoveFile - PullRequest
1 голос
/ 30 августа 2011

Во-первых, я знаю, что есть аналогичные вопросы по SO, но я еще не нашел ни одного ответа, который бы подходил моей проблеме.

InstallShield 2009 устанавливает мою программу, а моя программа создает INI-файл. Когда программа удаляется, она покидает ini (потому что ее не было в исходной установке). Я пытался использовать RemoveFile в прямом редакторе. Я дал ему свойство, правильный режим установки, но я понятия не имею, что такое «Компонент» или что я должен с ним делать. Я просмотрел каждый файл справки InstallShield и посмотрел онлайн, но все, что описывает «компонент», крайне неоднозначно. Отладчик не выдает никаких ошибок или предупреждений, связанных с RemoveFile, но файл продолжает оставаться, когда я запускаю новый деинсталлятор. Я боролся с этой проблемой в течение нескольких дней и пробовал все виды вещей в RemoveFile безрезультатно!

Просто ... Я просто хочу удалить ini, который находится в каталоге установки, куда он устанавливает исполняемый файл. Как проще всего это сделать, и что такое «Компонент»?

1 Ответ

2 голосов
/ 30 августа 2011

Компонент требуется установщику Windows, чтобы определить, обрабатывать ли вообще «инструкцию по удалению файла». Я процитировал этот термин, потому что на самом деле такого термина нет - просто для простоты объяснения.

Таким образом, если компонент запланирован для установки (включен в устанавливаемую функцию, условие разрешается в true), а InstallMode имеет значение «удалить при установке или оба», установщик Windows попытается найти файлы, которые вы указанный в FileName, расположенном в DirProperty, и попытается удалить его.

Если компонент запланирован для удаления, и InstallMode имеет значение «удалить при удалении или оба», та же логика будет работать при удалении.

В случае, если компонент не должен быть установлен / удален (например, устанавливается другая функция или условие ложно), «инструкция удаления файла» будет игнорироваться установщиком Windows.

Надеюсь, теперь это имеет больше смысла.

...