You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用WIX安装HKGrotesk字体后,源安装文件中字体无法删除求解决

这个问题我碰到过好几次,本质是Windows安装字体后,系统进程(比如字体缓存服务、资源管理器)会持有源字体文件的句柄,导致你没法直接删除安装文件夹里的原文件。下面给你几个靠谱的解决方案,都能保证安装功能正常,同时解决删除问题:

方案1:安装完成后自动重启字体缓存服务

Windows的字体缓存服务(FontCache)是最常见的“占用元凶”,我们可以在WIX里加个自定义动作,安装完成后自动重启这个服务,释放文件锁定。

修改你的WIX配置,添加以下内容:

<!-- 定义重启字体缓存的自定义动作 -->
<CustomAction Id="RestartFontCache" Execute="deferred" Impersonate="no" Command='cmd /c "net stop FontCache &amp;&amp; net start FontCache"' />

<!-- 把动作放在安装完成后执行 -->
<InstallExecuteSequence>
  <Custom Action="RestartFontCache" After="InstallFinalize" />
</InstallExecuteSequence>

这样安装完成后,服务会自动重启,你再去删除安装文件夹里的字体文件就不会提示占用了。

方案2:把字体文件嵌入MSI包(更省心)

如果你的安装文件夹不需要保留原字体文件,直接把字体打包进MSI里就行。WIX会自动把文件解压到临时目录,安装完成后临时目录会被系统清理,根本不用手动删除。

只需要给你的File元素加上Compressed="yes"属性:

<File Id="..." Source="fonts\HK\HKGrotesk-Black.otf" TrueType="yes" Compressed="yes" />

这样安装包运行时,字体文件不会留在安装文件夹里,自然也就没了删除的烦恼。

方案3:手动排查并释放占用(临时应急)

如果只是偶尔需要删除,你可以用微软的Process Explorer工具:

  • 打开Process Explorer,点击菜单栏的Find → Find Handle or DLL
  • 输入HKGrotesk-Black.otf,找到占用文件的进程
  • 右键结束该进程(注意:如果是explorer.exe,结束后可以在Process Explorer里重新启动它)
  • 之后就能正常删除文件了

不过这个方法适合临时操作,不如前两种方法彻底。

内容的提问来源于stack exchange,提问作者Littack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 16:18:14