Cyberpunk: forced load libraries instead of RB by ZashIn · Pull Request #163 · ModOrganizer2/modorganizer-basic_games
So you create the symlink in the CET mod folder?
Yup
That would mean the additional mapping created by MO into the game folder does get catched up by the crash reporter, but the path resolution for ../version.dll is probably (without the symlink).
Yes and no, the mapping applies to any process created by the process you originally launch, or something like that? I'm not super familiar with Windows process group dynamics, but emperically seems to be the case -- I'm using REDprelauncher to launch the game, and of course the mappings get passed through to so when Cyberpunk2077.exe does load it's gets the DLLs I told it about.
That the symlink fixes the CrashHandler.exe problem is a little weird to me, as yeah, either the VFS follows the symlink itself and makes CrashHandler.exe think version.dll is in its path, or it passes it through and CrashHandler.exe isn't have any problem reading "../version.dll". Which in either case raises the question of why it doesn't work without the symlink (seeing as it can clearly read the file through the VFS and it doesn't have this issue when manually installed).
I can't consistently trigger crashes either, but I'm gonna make the changes you suggested to my Force Load Settings and see if the problem recurs the next time a crash does occur.
That said, while thinking about this I found a new hypothesis as to why CrashHandler is crashing and why these changes may not help. And... what might actually help:
So, let's ask this question: How can CrashHandler.exe even fail to load "version.dll"? This is an important question because it's a core windows system dll -- that's why CET can use a wrapper for it to get itself loaded into memory. If CrashHandler.exe was loading it normally, it'd get it from C:\Windows\System32.
I think it was loading the DLL for stack trace purposes, and used the path that Cyberpunk2077.exe used. The injected DLL meant that it had no path, and so CrashHandler looked in its current path and found nothing. This'd also explain why it did not need a link to winmm.dll . Adding the symlink fixed that. Adding the force load... may or may not, depending on how they're loading the library.
If the force load config change fails, I'm going to try putting in a drive-absolute path, first with VFS location (ie \GoGLibrary\Cyberpunk2077\bin\x64\version.dll) and if that fails, one pointing at the mod (ie \Cyberpunk2077\CustomGame\mods\Cyber Engine Tweaks\bin\x64\version.dll).
Hoping that when CrashLoader loads the crash dump from CyberPunk it'll get the full path in the list of loaded DLLs.
