从资源中设置应用程序图标时应用程序大小增加

时间:2012-08-20 00:10:22

标签: visual-studio-2010 visual-studio resources

我有一个大小为16kb的应用程序。

通过“项目属性”菜单添加图标资源后,应用程序按预期增加到299kb的大小。

现在,在属性/应用程序下,当我将图标文件设置为“Resource \ IconName.ico”时,文件大小再次增加到581kb。

这是正常行为吗?我知道当我将图标添加为资源时它会增加,但是当我将图标从资源设置为应用程序图标时,它就会增加。

任何人都可以解释为什么会这样吗?

编辑:

也许更好的问题是如何使用“属性/资源”部分中的图标设置应用程序图标?

1 个答案:

答案 0 :(得分:5)

是的,这是正常行为。您的图标没有被存储为资源两次(如某些注释中所建议的),它只是在编译期间链接到exe,同时也存储为资源。由于图标是面向公众的(即explorer.exe在渲染图标时直接访问它),因此您最终会以不同的格式获得2个图标副本:

  • 以Windows标准格式
  • 直接编译到exe中的图标的一个副本
  • 作为.NET资源的一个副本

如果您确实想要节省这些额外空间,请删除嵌入式资源,将应用程序图标引用更改为直接指向磁盘上的图标,然后,当您需要将图标副本分配给表单时,将其解压缩直接来自集会:

var executablePath = Assembly.GetExecutingAssembly().Location;
var icon = Icon.ExtractAssociatedIcon(executablePath);