Inno Installer не удаляет файлы - PullRequest
2 голосов
/ 21 марта 2012

Итак, я сегодня взял Inno, чтобы попытаться получить базовый установщик для игры Unity.Инсталляторная часть Inno работает отлично, к сожалению, деинсталлятор вообще не работает.Я просмотрел документы и просмотрел Google, и почти ничего не видел по этой проблеме.Документы Inno рекомендуют использовать раздел [UninstallDelete], который я пробовал, с похожими результатами.

[Setup]
AppName=Installable Files
AppVersion=1.0
DefaultDirName={pf}\Installable Files
DefaultGroupName=Installable Files                              
UninstallDisplayIcon={app}\File.exe
Compression=lzma2
UninstallFilesDir={app}\uninst
SolidCompression=yes

[Files]
Source: "File.exe"; DestDir: "{app}"; DestName: "File.exe"
Source: "Files\*"; DestDir: "{app}\Files"; Flags: recursesubdirs
Source: "Files\README.txt"; DestDir: "{app}"; Flags: isreadme

[Icons]
Name: "{group}\Files"; Filename: "{app}\File.exe"; WorkingDir: "{app}"

[UninstallDelete]
Type: filesandordirs; Name: "{pf}\Files" 

В выводе из приведенного выше кода говорится, что он удаляет все файлы в подкаталогах, но не удаляетсякаталог с кодом ошибки (145), а затем указывает, что процесс удаления удален успешно.Это то же самое, независимо от того, запускаю ли я деинсталлятор из Inno Setup Compiler, uninst000.exe или из раздела «Установка и удаление программ» в Windows.

Установщик / деинсталлятор, который на самом деле ничего не удаляет, раздражает,так что если есть какое-то понимание этой проблемы, было бы здорово.

(Обратите внимание, что я также пытался удалить отдельные файлы в [UninstallDelete], такие как Type: files; Name: "{app}\LGODemo.exe" с нулевым успехом)

РЕДАКТИРОВАТЬ: После установки

После удаления

Как показывают изображения, ни один из файлов не удаляется из-за ошибки 145.Затем программа удаления повторяет попытку и, по-видимому, удаляет папки, за исключением того, что они все еще существуют, и файл по-прежнему исполняется на 100%.Я только добавил раздел UninstallDelete, когда исходный файл удаления не удался.

Извините за ссылки в Dropbox, я не могу публиковать imgs, пока у меня не появится лучший представитель.

Ответы [ 2 ]

1 голос
/ 22 марта 2012

Если вы не сказали иначе, Inno удалит все, что было установлено.

Кроме того, выполнение явного [UninstallDelete] для папки может иметь неблагоприятные побочные эффекты, особенно если у вас неправильный путь ({app} против {pf}\blah). Представьте, если кто-то установил ваше приложение в C:\Windows\? Вы только что уничтожили их установку Windows!

0 голосов
/ 13 июня 2015

Я понял, что вы делаете неправильно, вы должны удалить

UninstallFilesDir={app}\uninst часть По умолчанию {app}

И не используйте [UninstallDelete] .с вышеописанным методом следует удалить все файлы. Если вы хотите использовать [UninstallDelete], используйте

[UninstallDelete]
Имя: {приложение} \; Тип: filesandordirs

Вместо

[UninstallDelete] Type: filesandordirs; Name: "{pf}\Files"

ПОПРОБУЙТЕ

...