Inno Setup - {drive:src}未在Win7和Win8中返回映射的驱动器号

时间:2013-12-16 06:32:39

标签: inno-setup network-drive mapped-drive

在安装过程中,我将源代码的驱动器号({drive:src})写入{app} /userinfo.ini和{localappdata} /userinfo.ini文件,这在WinXP和Vista中运行良好,但在Win7和Win8的。在{app} /userinfo.ini中,如果源是映射驱动器,则始终写入“C:”;在{localappdata} /UserInfo.ini中,它正在写入源的完整网络路径。我读到Win7和Win8用户的权限不同。然后,在这种情况下如何获取映射的驱动器号。

1 个答案:

答案 0 :(得分:1)

您无法获取映射的驱动器号,因为安装程序以管理员身份运行,并且管理员和非管理员级别之间的驱动器映射不同(即使您认为它是同一个用户 - 并且并非总是如此)。

当从常规升级到管理员时,Inno会自动将映射的驱动器号转换为“真正的”UNC路径,因为如果它尝试使用该字母,它将无法运行。因此{src}将始终是UNC路径,{drive:src}将是根共享名称。

您不应该尝试在管理员安装中保存此信息,因为不同的用户可能有不同的映射。您需要让应用程序自己解决这个问题(并将其保存在每个用户的设置中),否则您将需要进行每用户安装。