二进制文件版本划分

虚幻引擎BuildID系统的参考,其可缓解由过期DLL文件造成的潜在错误。

Choose your operating system:

Windows

macOS

Linux

虚幻引擎的 BuildID 系统可缓解由过期DLL文件造成的潜在错误。此系统不但可以预防崩溃或失效的库链接,还能防止由陈旧二进制文件引起的疑难bug。工作原理是只加载与可执行文件自身同时进行编译的DLL文件。编译ID通常在运行时自动生成,每次编译引擎时均会生成一个全新的唯一值。然而可以手动指定值将其覆盖。

自动生成的编译ID

在编译时,每个包含至少一个已编译DLL文件的输出目录都会接收一个扩展名为".modules"的JSON文件,如"UE4Editor.modules"。此文件将列出目录中的每个模块和该模块关联的DLL文件,以及编译自身的GUID。每次引擎编译时,它都会生成一个新的GUID,以便识别来自其他编译会话的DLL文件,且引擎可以忽略它们。使用源码管理维护二进制编译时,必须一同签入可执行文件、所有DLL及其关联的".modules"文件,以确保编译ID相匹配。

手动指定的编译ID

可以将您的编译ID强制设为特定值。您可以在 Build/Build.version JSON文件中添加一个 BuildId 条目(作为字符串变量)来实现,但不建议如此操作,因为它将移除阻止使用不兼容模块的检查。如果将强制编译ID与可在多个项目之间共享的插件一同使用,那么运行过期代码将十分容易。

欢迎帮助改进虚幻引擎文档!请告诉我们该如何更好地为您服务。
填写问卷调查
取消