Удалить неустановленные созданные файлы - PullRequest
3 голосов
/ 18 августа 2010

У меня есть проект установки (MSI) в VS2008, который устанавливает мой проект. В рамках проекта я создаю файл настроек для приложения в папке SpecialFolder.CommonApplicationData + \\"settings" (две косые черты в коде C # для экранирования) Однако деинсталлятор не избавляется от этого для меня, когда удаляет программу. Как я могу удалить эту папку во время удаления? Я читал, что я должен использовать VB Script, но я никогда не использовал его раньше, поэтому не совсем уверен, как это сделать. Я пробовал что-то вроде этого:

On Error Resume Next
Dim fso, objfolder
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(COMMON_FILES + "\\settings")
objfolder.Delete
Set folder = nothing
Set fso = nothing

но файлы настроек остаются там после удаления. Есть идеи? Спасибо

Ответы [ 2 ]

3 голосов
/ 18 августа 2010

Установщик Windows имеет таблицу RemoveFiles именно для этой цели. К сожалению, выбранный вами инструмент не предоставляет эту (или многие другие) функцию. Я предлагаю рассмотреть другой инструмент, такой как Windows Installer XML. В противном случае вы будете использовать хрупкие пользовательские антипаттерны для обхода ограничения.

2 голосов
/ 18 августа 2010

Добавьте пользовательское действие установщика и переопределите Удалите метод для удаления дополнительных файлов.

См. Эту статью для получения дополнительной информации о пользовательских действиях установки: Класс установщика и пользовательские действия

...