未能将许可证文件‘licenses.licx’转换为二进制资源

未能将许可证文件‘licenses.licx’转换为二进制资源 [原创 2005-09-16 23:23:25 ] 发表者: Figo0826   

本文部分文字来源于网络,感谢原作者

今天晚上,在做一个从网页中提取内容的vb.net程序时,当时只是改变了一下窗体的默认图标,其他的没有做任何改动,但在编译时却突然出现了错误提示(XXX表示项目所在文件夹)

XXX\licenses.licx 未能将许可证文件“licenses.licx”转换为二进制资源。未将对象引用设置到对象的实例

由于在未改变图标之前编译很正常,因此怀疑是改变图标引起的,将改变撤销后,编译,仍然出现相同的错误提示。

由于原来没注意过该文件,不清楚此文件的作用,因此第一想法就是删除该文件,看看效果如何。为保险起见,将文件放在了回收站中,并未彻底删除。完成后编译,结果系统提示找不到系统文件licenses.licx,由此看来一定在某个项目文件里已经记录了该文件了,或者是该文件是不可或缺的。

通过查找,发现项目文件.vbproj里有这个文件的记录

<File RelPath = "licenses.licx" 
      BuildAction 
= "EmbeddedResource"
/>

索性将这段代码从项目文件里删除,再次编译,顺利通过。后来再次改变图标,再没有出现过错误。

后来上网查询该文件的作用时,发现了有网友在blog上发表的相同错误的解决方法,和我的上述做法一样,但是又提到了该做法只能保持一段时间不出现该错误,在改变控件属性或位置后该错误会继续出现。针对这种情况,提出了一个彻底解决的方法:将licenses.licx 属性的 生成操作 由 嵌入的资源 改成 无。

该方法我没有试验过,不过有此困然的朋友可尝试一下。

原文地址:https://www.cnblogs.com/King0502/p/2019355.html