Inno Setup 默认安装文件夹更改

Posted

技术标签:

【中文标题】Inno Setup 默认安装文件夹更改【英文标题】:Inno Setup default install folder change 【发布时间】:2013-03-14 09:27:49 【问题描述】:

每次我编译我的安装程序时,默认安装目录是 C:\Program Files\Company\Product,我似乎无法更改它。这是我在设置下得到的:

[Setup]
AppName=MyProduct
AppVerName=MyProduct
AppPublisher=Company
DefaultDirName=C:\MyStuff\Company\MyProduct
DefaultGroupName=Company\MyProduct
UninstallDisplayIcon=app\MyProduct.exe
UninstallDisplayName=MyProduct Uninstall
PrivilegesRequired=poweruser
OutputDir=userdocs:Inno Setup Examples Output
OutputBaseFilename=Setup
DisableDirPage=false
DisableProgramGroupPage=true
VersionInfoCompany=Company Inc
VersionInfoProductName=MyProduct
AllowUNCPath=false

根据文档,DefaultDirName 应该指定默认安装文件夹。但事实并非如此。

特别是我的情况是,我想将 x64 机器上的默认安装文件夹设置为 C:\Program Files,但无论我在 DefaultDirName 中输入什么,安装程序总是选择 Program Files (x86)。

【问题讨论】:

对于 x86 应用,C:\Program Files (x86)` and C:\Program Files` 是同一个文件夹。 如果你有一个 64 位应用程序,那么你应该打开 64 位安装模式,然后它会做你想做的事。如果你有一个 32 位的应用程序,那么 Inno 已经在做正确的事情,并且试图强制它安装到 64 位的 Program Files 文件夹将是非常糟糕的。 【参考方案1】:

只需在您的 iss 文件中添加“UsePreviousAppDir=no”:

[设置]

...

UsePreviousAppDir=no

【讨论】:

【参考方案2】:

如果UsePreviousAppDir 指令设置为yes(默认情况下),则最后选择的安装文件夹优先于DefaultDirName 指令值。如果要强制选择DefaultDirName 指定的目录,请关闭UsePreviousAppDir 指令。

如果您想保留最后一个目录的功能,并且只是为了测试而克服这个问题,只需在运行新构建的设置之前卸载以前的安装。

【讨论】:

请注意,您通常应该关闭UsePreviousAppDir,因为这样做会破坏用户的期望。测试时先卸载是正确答案。 这个UsePreviousAppDir 默认值让我困惑了 2-3 个小时,直到我发现这个......谢谢............我从上一个程序中复制并粘贴了我的脚本我刚刚意识到的版本包含相同的AppId,可能会导致这种冲突。使用旧版本的卸载程序解决了问题

以上是关于Inno Setup 默认安装文件夹更改的主要内容,如果未能解决你的问题,请参考以下文章

Inno setup更改桌面快捷方式图标

inno setup打包的安装文件更换位置后图标改变了

Inno Setup安装如何安装到指定目录

Inno Setup 安装完成后,默认不重启

Inno Setup5 如何更改卸载图标(我做出来的安装程序和卸载的一样)我想把卸载图标换成别的。

Inno Setup安装前删除旧文件和文件夹