I needed to make some small changes to UE source, and had trouble with the entire engine recompiling every time I would try to compile my game, so decided to create an Installed Build of the engine using the instructions here:
The Installed Build compiles fine, but when trying to compile my game after switching the project to the Installed Build engine version I get the following error:
UnrealBuildTool : error : Couldn't find target rules file for target 'ShaderCompileWorker' in rules assembly 'UE4Rules, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'.
UE4 also does not appear as a project in my game’s visual studio solution file (even after regenerating visual studio project files), and am wondering if this could be part of the problem.
I am using UE 4.24.3
Any ideas how to solve this?
I think I may have made some progress, but something is still not right.
I right clicked my game project in the solution and went to properties, then looked at the build command line under ‘NMake’. It was this:
E:\Programs\Epic\UE_4.24_Custom\Engine\Build\BatchFiles\Build.bat -Target="MyGameEditor Win64 Development -Project=\"$(SolutionDir)$(ProjectName).uproject\"" -Target="ShaderCompileWorker Win64 Development -Quiet" -WaitMutex -FromMsBuild
For some reason ShaderCompileWorker is one of the build targets. Is this normal? I tried removing the ShaderCompileWorker build target, and when I started building the solution it no longer stopped with the error above (in the first post), but to my surprise it began recompiling the entire game engine.
This really surprised me, since the entire reason why I made an Installed Build was to avoid this from happening.
I’ve tried making another Installed Build several times, switching my project’s engine version to the new Installed Builds, and regenerating the Visual Studio project files, and nothing changes. ShaderCompileWorker remains one of the build targets in the generated solution file, and when trying to build my game’s solution I get the following output log message:
The command "E:\Programs\Epic\UE_4.24_Custom\Engine\Build\BatchFiles\Build.bat -Target="MyGameEditor Win64 Development -Project=\"E:\unreal_projects\MyGame\MyGame.uproject\"" -Target="ShaderCompileWorker Win64 Development -Quiet" -WaitMutex -FromMsBuild" exited with code -1.
I have ShaderCompileWorker as a target there as well, so seems normal. Seems like that would get built as a dependency of your project, interesting why that is needed there.
Thanks for the info. Are you using an Installed Build you compiled yourself, a source build, or a binary installed via the Epic Launcher?
I just reinstalled 4.24 via the Epic Launcher, switched my project over to it, and in the generated Visual Studio solution file ShaderCompileWorker is ***NOT ***one of the targets in the build arguments.
Interesting, I’ve done both in the past but currently I am using source pulled from git and built manually.