我有一个大小为16kb的应用程序。
通过“项目属性”菜单添加图标资源后,应用程序按预期增加到299kb的大小。
现在,在属性/应用程序下,当我将图标文件设置为“Resource \ IconName.ico”时,文件大小再次增加到581kb。
这是正常行为吗?我知道当我将图标添加为资源时它会增加,但是当我将图标从资源设置为应用程序图标时,它就会增加。
任何人都可以解释为什么会这样吗?
编辑:
也许更好的问题是如何使用“属性/资源”部分中的图标设置应用程序图标?
答案 0 :(得分:5)
是的,这是正常行为。您的图标没有被存储为资源两次(如某些注释中所建议的),它只是在编译期间链接到exe,同时也存储为资源。由于图标是面向公众的(即explorer.exe在渲染图标时直接访问它),因此您最终会以不同的格式获得2个图标副本:
如果您确实想要节省这些额外空间,请删除嵌入式资源,将应用程序图标引用更改为直接指向磁盘上的图标,然后,当您需要将图标副本分配给表单时,将其解压缩直接来自集会:
var executablePath = Assembly.GetExecutingAssembly().Location;
var icon = Icon.ExtractAssociatedIcon(executablePath);