• Godot导出Windows版本图标未更换的问题


    问题

    Godot Editor导出项目的Windows版本,虽然设置了rcedit工具和自制的Windows程序图标,但是导出的项目可执行文件的图标并没有被更换。
    rceidt
    windows_native_icon

    调查过程和解决方法

    用Visual Studio打开项目可执行文件,可以确认程序所用图标名称为"GODOT_ICON"。
    字符串"GODOT_ICON"只出现在godot\platform\windows\godot_res.rc文件中:
    在这里插入图片描述
    这确认了Godot导出Windows版本时并没有用rcedit工具将Godot的缺省图标替换为设置的自制图标。
    继续调查Godot没有调用rcedit工具的原因。
    字符串"Rcedit"只出现在godot\platform\windows\export\export.cpp:

    Error EditorExportPlatformWindows::modify_template(const Ref<EditorExportPreset> &p_preset, bool p_debug, const String &p_path, int p_flags) {
    	if (p_preset->get("application/modify_resources")) {
    		_rcedit_add_data(p_preset, p_path);
    	}
    	return OK;
    }
    
    Error EditorExportPlatformWindows::_rcedit_add_data(const Ref<EditorExportPreset> &p_preset, const String &p_path) {
    ...
    		add_message(EXPORT_MESSAGE_WARNING, TTR("Resources Modification"), TTR("Could not start rcedit executable. Configure rcedit path in the Editor Settings (Export > Windows > Rcedit), or disable \"Application > Modify Resources\" in the export preset."));
    ...
    
    bool EditorExportPlatformWindows::can_export(const Ref<EditorExportPreset> &p_preset, String &r_error, bool &r_missing_templates) const {
    ...
    	if (p_preset->get("application/modify_resources") && rcedit_path.empty()) {
    		err += TTR("The rcedit tool must be configured in the Editor Settings (Export > Windows > Rcedit) to change the icon or app information data.") + "\n";
    	}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    这些信息说明:除了要配置rcedit工具,还要确保"Application > Modify Resources"(application/modify_resources)开关是打开的。
    找到这个application/modify_resources开关:
    windows_export
    顺便把下面的“应用->图标”属性值也改好了。

    修改后再次导出,在资源管理器中查看:程序图标没有更新;用Visual Studio打开exe文件查看,程序图标确实换了,说明前面的修改确实生效了。
    考虑到资源管理器显示的程序图标可能有缓存,注销后重新登录,这次在资源管理器弹出菜单中选择“查看”的不同方式,除了“超大图标”和“大图标”,其它查看方式的图标显示都更新了。
    考虑到超大图标和大图标可能缓存时间更长,暂时不管了。午睡后再看一遍,搞定!

  • 相关阅读:
    logback/log4j基本配置和标签详解
    torch.mean()、tensor.mean() 用法及维度的理解(二维、三维)
    Idea 工作插件总结
    基于持续同调的在线社交网络传播研究
    电销外呼系统主要有哪些作用?
    基于SSM的Web网页聊天室系统
    Elixir学习笔记——输入输出和文件系统
    学会这招,轻松掌握学校教学质量!
    【玩转 Cloud Studio】以 Rust 为例定制自己的开发环境
    Flutter 项目实战 实现上传头像和个人资料 (五)
  • 原文地址:https://blog.csdn.net/feiyunw/article/details/127670120