应用程序的大小增加时设置从资源应用程序图标(Application Size Increases W

2019-09-21 09:24发布

我有一个应用程序,其大小为16KB。

通过项目属性菜单中添加一个图标资源后,应用程序,符合市场预期,上升到一个大小299KB的。

现在,在性能/应用程序时,我设置的图标文件为“资源\ IconName.ico”文件大小再增加到581KB。

这是正常的行为呢? 据我所知,它增加了当我添加图标作为一种资源,而不是当我设置的图标,从资源到应用程序图标。

任何人都可以解释为什么这是怎么回事?

编辑:

也许更好的问题将是如何设置使用的图标从属性/资源节中的应用程序图标?

Answer 1:

是的,这是正常的行为。 你的图标不被存储作为资源的两倍(如一些评论建议),它只是被在编译过程中,同时被存储作为资源链接到exe文件。 由于图标是面向公众的(即explorer.exe的渲染图标时直接访问它),你基本上结束了在不同格式的图标2份:

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

如果你真的想拯救这个额外的空间,删除嵌入的资源,改变你的应用程序图标参考笔直指向磁盘上的图标,然后,当你需要的图标的副本分配给您的形式,直接从提取它部件:

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


文章来源: Application Size Increases When Setting Application Icon from Resources