with upgrading to 4.18.1 we got an interesting issue. We are using Visual Studio 2015 Update 3 and build the engine from p4 sources with RunUAT batch and the “Make Installed Build Win64” target.
When colleagues use the build, they start the editor out of visual studio, When they are debugging, the BuildId in UE4Editor.version becomes changed, after debugging the project multiple times. This corrupts the build engine because of inconsistencies of Build Ids between different modules, or so I presume. When setting the Build Id manually to the original one. The engine build works again.
This only happens on machines which didn’t build the original installed build.
I already tried to figure out where the Build Id is updated but didn’t found it.
Is this a known problem? Any advice for a work around? From where the BuildId in UE4Editor.version get written?
EDIT: We get this also on the machine, which built the engine when building the game in visual studio. I’ve build UE 4.18.1 and reverting the UnrealBuildTool to CL 3701459 doesn’t show the problem. So I guess the UnrealBuildTool got broken with 4.18.1 after CL 3701459.
I have made a few attempts to reproduce the issue that you described, but have so far been unsuccessful. I built a local binary version of the Engine (4.18.1) using the BuildGraph, then created a new code project with the new Engine. I ran the project through Visual Studio’s debugger, and made several changes to the project (added new Blueprints, edited the Blueprints, deleted some, added a new code class, performed hot reloads, set UE4Editor.version to Read Only, etc). None of those resulted in an indication that the BuildID had changed. Is this something that happens infrequently?
For three of us it was very much reproducible. However, for one of our colleagues; He was not able to reproduce for a day, but a few days later, he was also experiencing the issue, and after switching to the downgraded UnrealBuildTool it didn’t happen at all.
it also triggered for us was when starting the project normally in the editor, and compiling in the editor as well as in visual studio.
Not sure if this related, but we use a custom EngineAssociation string (which we set in the registry):
Afaik, this is normally a guid (BuildId?), so maybe this makes a difference?
When using a local binary build of the Engine, it is typical to make sure that the EngineAssociation value is the same for every installation. I do not believe the EngineAssociation value needs to be a GUID. What solution configuration are you using in Visual Studio?
Having the EngineAssociation and BuildId set to different values shouldn’t be a problem. If you look at the values set for these in the binary Engine that is installed by the Launcher, they are different. The EngineAssociation value is used to identify which Engine a particular project is associated with. BuildId is used to make sure all of the Editor modules are current
If you look at the UE4Editor.version and UE4Editor.modules files, the BuildId values should be the same in each file. If they are different, that may be what is causing the issue that you are experiencing to appear.
Yes, we have the same value “UE4.18.1-UP2SWITCH” with every installation. I was just wondering, if internally something might work differently when the EngineAssociation is not the build id leading to generating a new build id?
We use solution configuration: Development Editor - Win64