InstallShield) Как удалить файлы и подпапки, которые MSI не знает при удалении программы - PullRequest
1 голос
/ 06 января 2020

Я использую InstallShield 2019 Professional Edition и имею Basi c MSI Project, который включает в себя некоторую исполняемую программу.

Моя программа создает некоторые файлы и подпапки (log, environment, ...) в папка установки во время выполнения.

Конечно, MSI не знает о существовании этого файла и его подпапок.

Таким образом, когда пользователь удаляет программу, эти файлы и папки остаются на компьютере пользователя.

Есть ли возможность очистить каталог установки в Basi c MSI Project?

Я нашел вопрос, похожий на этот, в переполнении стека ( При удалении не удаляются файлы в INSTALLDIR - Basi c Msi - Installshield 2012 ). Но ссылка в ответе была уже сломана. Поэтому я снова задаю вопрос.

Ответы [ 2 ]

2 голосов
/ 07 января 2020

Если количество файлов и папок, которые нужно удалить, является известным количеством, вы можете использовать таблицу RemoveFile, чтобы указать файлы и папки для удаления. InstallShield показывает это в компонентах в разделе «Дополнительно» или в прямом редакторе.

https://docs.microsoft.com/en-us/windows/win32/msi/removefile-table

Если ваши файлы находятся в неизвестной структуре каталогов, вам придется написать пользовательское действие.

В качестве отступления, иногда, если вы измените свое приложение, поместив эти файлы в C: \ ProgramData ([CommonAppDataFolder]) вместо C: \ Program Files, люди станут менее чувствительны к вещам, оставленным позади.

Если их оставить позади вас чувствует себя «грязным», вы считаете, что это руководство по проектированию от Microsoft, которое оставляет пользовательские данные при удалении.

0 голосов
/ 06 января 2020

Это можно сделать с помощью InstallShield. Проверьте эту ссылку .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...