Inno Installer不会卸载任何文件

时间:2012-03-21 04:50:36

标签: inno-setup uninstaller

所以,我今天刚拿起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" 

上面代码的输出显示它正在删除子目录中的所有文件,但无法删除目录w /(145)错误代码,然后说明unistallation进程成功。无论是从Inno Setup Compiler,uninst000.exe还是从Windows中的“添加/删除程序”运行卸载程序,都是一样的。

实际上并没有卸载任何东西的安装程序/卸载程序很烦人,所以如果对此问题有任何了解,那就太棒了。

(请注意我也尝试删除[UninstallDelete]下的个别文件,例如Type: files; Name: "{app}\LGODemo.exe",但没有成功)

编辑: After Install

After Uninstall

如图所示,由于145错误,没有文件被删除。卸载程序然后再次尝试,并显然删除文件夹,除了它们仍然存在,并且该文件仍然是100%可执行文件。我只在初始卸载文件失败时添加了UninstallDelete部分。

抱歉,对于Dropbox链接,在我有更好的代表之前无法发布imgs。

2 个答案:

答案 0 :(得分:1)

除非您另有说明,否则Inno将删除它安装的所有内容。

此外,对文件夹执行显式[UninstallDelete]可能会产生不良副作用,尤其是在路径错误的情况下({app} vs {pf}\blah)。想象一下,如果有人将您的应用安装到C:\Windows\?你刚刚删除了他们的Windows安装!

答案 1 :(得分:0)

我得到了你做错了什么,你应该删除

UninstallFilesDir={app}\uninst部分默认为{app}

并且不要使用[UninstallDelete]。使用上述方法,它应该删除所有文件。 如果您想使用[UninstallDelete],请使用

[UninstallDelete]
    姓名:{app} \;键入:filesandordirs

而不是

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

尝试