Descent3
Descent3 copied to clipboard
[Runtime Issue]: Debug windows build cannot start - missing ucrtbased.dll
Build Version
current
Operating System Environment
- [ ] Microsoft Windows (32-bit)
- [X] Microsoft Windows (64-bit)
- [ ] Mac OS X
- [ ] Linux (specify distribution and version below)
CPU Environment
- [ ] x86 (32-bit Intel/AMD)
- [X] x86_64 (64-bit Intel/AMD)
- [ ] ARM (32-bit)
- [ ] ARM64 (64-bit; sometimes called AArch64)
- [ ] Other (RISC V, PPC...)
Game Modes Affected
- [ ] Single player
- [ ] Anarchy
- [ ] Hyper-Anarchy
- [ ] Robo-Anarchy
- [ ] Team Anarchy
- [ ] Capture the Flag
- [ ] Bounty
- [ ] Entropy
- [ ] Hoard
- [ ] Monsterball
- [ ] Cooperative
Game Environment
No response
Description
On attempting to run the Windows x64 debug build, a message appears about a missing ucrtbased.dll file. This file is not packaged with the debug artifact.
Regression Status
No response
Steps to Reproduce
No response
Working as intended I suppose, if you don't have VS or at least the Windows SDK installed.
The debug versions of the VC runtime libraries are not supposed to be redistributed.
See https://learn.microsoft.com/en-us/cpp/windows/preparing-a-test-machine-to-run-a-debug-executable?view=msvc-170: Debug versions of an application aren't redistributable, and debug versions of the Visual C++ library DLLs are also not redistributable. You may deploy debug versions of applications and Visual C++ DLLs only to your other computers, for the sole purpose of debugging and testing the applications on a computer that doesn't have Visual Studio installed.
Or https://learn.microsoft.com/en-us/cpp/windows/determining-which-dlls-to-redistribute?view=msvc-170: You also can't redistribute debug versions of your applications, or the debug versions of DLLs or libraries supplied by Microsoft. You may only copy debug executables and libraries to machines you use for testing.
This hasn't been a thing for long, or I'm misremembering; I'm certain I was once able to run debug builds without vs installed. I've got no problem with it, but others might, especially for testing as it's one more gatekeeping obstacle. The change that led to the requirement needs to be documented probably.
Probably we may to switch from full Debug build to RelWithDebInfo on artifact building (at least for Windows). That way we retain ability to get debug info from users and don't force them to install full MSVC environment for that.
With #514 Windows Release can produce useful crashdumps without installing anything, so users can help identify crashes without using the Debug build
With #514 Windows Release can produce useful crashdumps without installing anything, so users can help identify crashes without using the Debug build
This feature not helped much with "new pilot - new game" crash (#523) :). Crash dump is stripped down and there no much info, and I forced to use extensive logging to hunt down issue.
With #514 Windows Release can produce useful crashdumps without installing anything, so users can help identify crashes without using the Debug build
This feature not helped much with "new pilot - new game" crash (#523) :). Crash dump is stripped down and there no much info, and I forced to use extensive logging to hunt down issue.
Did you load the symbols from the PDB file? I just reproduced that crash and can see the whole callstack, local variables and registers and stuff when running the crashdump.
Hmm. This is a bummer. I suppose it's a good forcing function to make us think hard about exactly what information we want from non-dev testers however.