visual-studio-2010 - 从资源设置应用程序图标时应用程序大小增加

标签 visual-studio-2010 visual-studio resources

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

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

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

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

谁能解释为什么会这样?

编辑:

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

最佳答案

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

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

  • 如果你真的想节省这个额外的空间,删除嵌入的资源,改变你的应用程序图标引用直接指向磁盘上的图标,然后,当你需要一个图标的副本分配给你的表单时,直接从集会:
    var executablePath = Assembly.GetExecutingAssembly().Location;
    var icon = Icon.ExtractAssociatedIcon(executablePath);
    

    关于visual-studio-2010 - 从资源设置应用程序图标时应用程序大小增加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12030981/

    相关文章:

    c# - 尝试在 Razor Pages 中添加脚手架项目时出错

    vb.net - 如何修复 vb 中语法与语音识别器语言不匹配错误的语言

    javascript - Ng-Repeat 在资源查询后不更新 - $apply() 不起作用

    JavaScript 处理

    visual-studio-2010 - Visual Studio 2010 运行时库

    visual-studio - 如何摆脱 WPP TraceEvent 宏的警告曲线?

    asp.net - 在 Visual Studio 2010 中通过 "File System"发布 - 不起作用!

    c# - 资源泄漏和内存泄漏与性能之间的关系

    c# - 在 if block 中包围行的 VS2010 快捷方式是什么

    c++ - OpenCV 配置问题