如何阻止installshield注册字体?
我有许多部署Web应用程序的installshield项目,它们都具有GlyphIcons和FontAwesome字体。 Installshield会自动将这些文件(* .ttf,* .eot,* .otf)注册到操作系统。
这是一个问题,因为无法删除文件以进行卸载或升级。
说明here或here不起作用,因为这些字段在我的installshield / project类型中根本不存在。
是否有其他方法可以在不重命名文件的情况下禁用此行为?
答案 0 :(得分:5)
我找到了suggestion on the Installshield论坛似乎有用。
禁用字体注册:
答案 1 :(得分:0)
只想在您的发布中添加 Font Table MSI文件用于指定应在系统上注册的字体。
此处添加的字体条目将在系统上注册字体。您可以尝试从此表中删除条目以禁用字体注册。检查你的最终版本,发布MSI而不是你的ISM(Installshield源文件)。
对Font表中列出的字体进行的注册会反映使用Windows资源管理器将字体粘贴到系统的字体文件夹中时会发生的情况 - 然后该字体会自动在系统上注册。
字体注册也可能通过MSI中的自定义操作发生(可能是您从其他人那里接管了项目),如果是这种情况,您也必须禁用该自定义操作。
此处有字体注册流程的一些信息:http://windowsitpro.com/scripting/trick-installing-fonts-vbscript-or-powershell-script
<强>实质上强>:
让我复制一下样本VBScript,以便在链接死亡时从上面的链接注册一个字体:
Set sa = CreateObject("Shell.Application")
Set fonts = sa.NameSpace(20)
fonts.CopyHere "C:\tmp\SomeFont.ttf"
PowerShell中的(十六进制0x14 = 20十二分):
$sa = new-object -comobject shell.application
$Fonts = $sa.NameSpace(0x14)
$Fonts.CopyHere ("C:\tmp\SomeFont.ttf")
这些剧本不会让我印象深刻,就像那样。但它们是: - )。
答案 2 :(得分:0)
我真的来晚了。
我一直在使用相同的字体(真棒和glyphicons以及来自第三方的其他字体)时遇到相同的问题,并且遇到了自动注册它们的相同问题。
您必须手动将它们从“直接编辑器”部分下的“字体”表中删除。