Solution!
I’ve resolved the fatal error on .exe startup! The problem came down to the dll’s needed to be beside the .exe (also running the .exe generated at {project_name}\Binaries\Win64
, not the other one) and so within {ProjectCoreLibrary}.Build.cs
I needed to change the section:
PublicDelayLoadDLLs.Add("{projectcore}.dll");
RuntimeDependencies.Add(Path.Combine(binFolder, "{projectcore}.dll")); // My third party DLL
to
PublicDelayLoadDLLs.Add("{projectcore}.dll");
RuntimeDependencies.Add(
Path.Combine("$(BinaryOutputDir)", "{projectcore}.dll"),
Path.Combine(binFolder, "{projectcore}.dll")
);
And including a RuntimeDependencies.Add(destination, source);
for all the dll’s beside my {projectcore}.dll
from the thirdparty build.
I initially had file lock issues that prevented the RuntimeDependencies.Add(destination, source);
from packaging but those decided to arbitrarily disappear and I could package Win64 lol.
I can’t say with this in mind I understand how the PIE even works, somehow the editor just knows where the DLL’s are more loosely. While the packaged versions need to be more explicit.
Sources that helped
What helped was re-reading this blog post on third party dll’s.
And finding this forum post on the similar issue.
Hope these help anyone else!