Installation Can';t从安装文件中删除字体

Installation Can';t从安装文件中删除字体,installation,fonts,windows-10,wix,delete-file,Installation,Fonts,Windows 10,Wix,Delete File,我已经通过WIX建立了一个安装程序,在C:/windows/fonts文件夹中安装了字体HKGrotesk。当我执行安装程序时,一切正常,字体已安装 <Directory Id="..." Name="HK"> <Component Id="..." Guid="..."> <File Id="..." Source="(...)\fonts\H

我已经通过WIX建立了一个安装程序,在C:/windows/fonts文件夹中安装了字体HKGrotesk。当我执行安装程序时,一切正常,字体已安装

<Directory Id="..." Name="HK">
  <Component Id="..." Guid="...">
    <File Id="..." Source="(...)\fonts\HK\HKGrotesk-Black.otf" TrueType="yes" />
  </Component>
</DirectoryRef>

问题是当我试图删除安装文件时。我收到一条消息说我的HKGrotesk-Black.otf在系统中是开放的

我如何才能让我的安装工作正常,并能够从我的安装文件文件夹中删除字体文件?

原始版


字体表:MSI中的字体用于正确安装字体。在WiX中,您只需指定几个属性:

在PowerShell中(十六进制0x14=20 dec):

$sa=新对象-comobject shell.application
$Fonts=$sa.NameSpace(0x14)
$Fonts.CopyHere(“C:\tmp\SomeFont.ttf”)

带有绝对路径和其他缺陷的愚蠢脚本,但它们应该作为示例使用。

卸载前是否关闭了所有使用该字体的应用程序?也许要手动测试卸载?(除非你已经这么做了)就这样!非常感谢你!到底是什么起作用的?剧本。这个解释真的很准确。我使用该脚本通过VBScript安装字体,就像通过windows安装一样。问题是windows注册表的路径直接指向我的msi安装程序生成的字体文件。所以我无法删除安装的文件,因为windows说“字体文件是我的”。使用脚本,它是安装的字体文件的副本。好的,我在下面快速添加了一个答案。以防它对某人有帮助(并且为了我的金鱼记忆已经忘记它的未来而写这篇文章)。
<DirectoryRef Id="FontsFolder">
  <Component Id="MyFontsFonts" Guid="...">
    <File Id="font1.ttf" Source="font1.ttf" TrueType="yes" />
  </Component>
</DirectoryRef>