vs2013 installshield打包msi字体文件始终无法卸载的问题

问题:在vs2013社区版中安装了installshield插件,建立了打包项目,安装默认流程配置,编译出了msi打包程序。一切都ok,但就是偶尔存在卸载的时候,目录里面的ttf字体文件卸不掉,导致需要重启电脑,并且覆盖安装的时候重启电脑后,新的ttf文件会被系统删除。这样用户体验很不好,网上这方面的解释也几乎没有。

原因

  1. vs2013社区版安装的installshield插件只有基本功能,其实installshield还有很多配置可以灵活更改。既然只有基本功能,那么就会给你默认做很多工作,而本次的问题就是installshield做的默认工作造成的。
  2. installshield默认情况下,会将目录中包含的ttf文件安装的时候自动注册到系统中,使其成为系统字体。那么其他软件就可以随时使用这个被注册的字体。因此当安装包卸载的时候,如果其他软件使用了这个字体,那当然无法卸载掉你的ttf字体文件了。所有就出现了上面的问题,因为卸载的时候如果文件被占用,那么系统会标记该文件是需要重启后删除的,在重启电脑后,系统自动找到该文件然后删除。所有出现了覆盖安装重启电脑后发现字体文件丢失。

解决:

因为installshield插件的功能不全,所有无法通过在vs2013中进行修改。那么直接用文本编辑器打开.isl文件,.isl文件在打包项目目录里面。查找到以下代码,删除掉即可:

	<table name="Font">
		<col key="yes" def="s72">File_</col>
		<col def="S128">FontTitle</col>
		<row><td>new_font.ttf</td><td/></row>
	</table>

可以看得出,上述这段代码的作用就是自动注册ttf文件到系统,要整段删除掉,因为自带的字体文件没必要注册到系统,当然如果你本身就需要这个功能,就可以不管。

心得:这个问题我跟了几天,也是从别人手上接手的项目,当时对installshield不熟悉,网络上基本上都没有遇到相同的问题,最后无意间在一个英文网页上看到自动注册字体等相关字眼,才联想到问题的所在,然后查看installshield的帮助文档,知道了原因。解决问题唯有仔细才行啊。对于女程序员来说,还算是必男程序员仔细一点。希望我的程序员之路能越走越远,现在已经30岁了,14年毕业已经开发了6年,现在感觉无法集中注意力去深入学习,水平也是马马虎虎,唯有一点点学习与改变。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值