我使用Inno安装程序来安装Windows桌面应用程序的Fontawesome字体。第一次安装通常运行良好,因为没有安装字体,但在随后的安装中,我经常遇到锁定问题:
为了安装我使用的字体:
Source: "FontAwesome.ttf"; DestDir: "{fonts}"; FontInstall: "FontAwesome";\
Flags: uninsneveruninstall
现在,我知道只有当字体不存在时,我才能使用Flags: onlyifdoesntexist
来安装字体,而且这确实有效。然而,有时我需要更新字体,因为一个版本的改变和新的字体已经添加。
显然,只有在使用字体的情况下才会出现错误。除了主要安装的应用程序外,我还使用Chrome并打开使用FontAwesome的页面,显然这也锁定了已安装的字体。
理想情况下,我需要发生的是,如果字体是锁定的,让它在下一次重新启动后或在字体被解封后进行替换。
看起来Inno每次都在尝试替换字体,即使字体版本是相同的。根据医生们 (文档的底部),只有在安装版本较高的情况下,文件才会被替换,但每次安装字体时似乎不会发生这种情况。
如果所讨论的字体正在使用,是否有任何方法使Inno正确地处理字体更新?
发布于 2016-12-16 08:56:58
您可以尝试将*.ttf
添加到CloseApplicationsFilter
中。
CloseApplicationsFilter=*.exe,*.dll,*.chm,*.ttf
如果字体被锁定,它应该进行Inno安装检查,并提供用户关闭Chrome (或其他应用程序)以允许替换。
https://stackoverflow.com/questions/41180434
复制相似问题