5

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

通过 Project Properties 菜单添加图标资源后,应用程序如预期的那样增加到 299kb 的大小。

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

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

谁能解释为什么会这样?

编辑:

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

4

1 回答 1

5

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

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

如果您真的想节省这些额外的空间,请删除嵌入的资源,将您的应用程序图标引用更改为直接指向磁盘上的图标,然后,当您需要将图标的副本分配给您的表单时,直接从部件:

var executablePath = Assembly.GetExecutingAssembly().Location;
var icon = Icon.ExtractAssociatedIcon(executablePath);
于 2012-08-20T01:11:05.850 回答