When I try to open my project in the editor, I get the following dialog:
And the log has the following right before crashing:
[0006.19] LogModuleManager:Warning: ModuleManager: Unable to load module '../../../../../Users/William/Documents/Rocket Projects/SagTest/Binaries/Win64/RocketEditor-SagTest.dll' because the file couldn't be loaded by the OS.
Yet, I do have a RocketEditor-SagittariusPlugin.dll
at Plugins\SagittariusPlugin\Binaries\Win64, and a RocketEditor-SagTest.dll
at the path specified in the log.
So what is the problem? If it helps, I am using Windows 7, compiling in Development mode (both Editor and Uncooked targets throw this error).
EDIT: Okay, so this gets fixed if I copy RocketEditor-SagittariusPlugin.dll
from Plugins\SagittariusPlugin\Binaries\Win64 to Binaries\Win64 (in other words, the project’s build folder rather than the plugin’s). But does this have to be done manually? Shouldn’t Rocket auto-detect the presence of a .dll in the Plugins folder if it exists? Or is my directory structure messed up?
Interesting. This is not expected – the plugin DLL should be loaded from the plugin’s binaries directory correctly. We have game-specific plugins here that work fine in this manner.
Curious, but what dependencies does your game-specific plugin have in its .Build.cs file?
We’ve seen a bug like this here as well that was caused by a third party library resetting the Windows DLL search path after a plugin DLL had started loading, but before all of it’s dependent DLLs had finished loading. This caused Windows to be unable to find all of the dependencies which failed the DLL loaded at the OS level.
–Mike
My plugin has the following dependencies:
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "HTTP" });
I also have this line set: PrivateIncludePaths.AddRange(new string[] { "SagittariusPlugin/Private", });
I was assuming this is the path from the \Plugins root folder to my plugin’s Private directory.
I also tried moving the plugin dependency in my game’s .Build.cs file to PrivateDependencyModuleNames
(it was previously in PublicDependencyModuleNames
) like you suggested in your other comment, but the problem persists.
Any luck William? Can you package up a small repro case for us to check out?
No luck yet, and in fact I am now running into similar issues with UnrealHeaderTool not seeming to recognize my plugin and auto-rebuild headers in the Intermediate directory. I’m sure it’s just me doing something really stupid and not a UE4 bug
I have uploaded the relevant contents of my project (minus binaries and saved files) to /FTP_Dropbox/William_Gaul/SagTest.zip
. Thank you so much for your help!
Good news. We’ve made some fixes for the next Rocket beta in how UnrealBuildTool detects when header files need to be updated. There were several little bugs with that.
–Mike