Descent3 icon indicating copy to clipboard operation
Descent3 copied to clipboard

[Runtime Issue]: Debug windows build cannot start - missing ucrtbased.dll

Open JeodC opened this issue 1 year ago • 7 comments

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

JeodC avatar Aug 02 '24 00:08 JeodC

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.

pzychotic avatar Aug 02 '24 18:08 pzychotic

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.

JeodC avatar Aug 02 '24 18:08 JeodC

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.

winterheart avatar Aug 12 '24 14:08 winterheart

With #514 Windows Release can produce useful crashdumps without installing anything, so users can help identify crashes without using the Debug build

Lgt2x avatar Aug 12 '24 14:08 Lgt2x

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.

winterheart avatar Aug 12 '24 14:08 winterheart

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.

pzychotic avatar Aug 12 '24 21:08 pzychotic

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.

tophyr avatar Sep 02 '24 16:09 tophyr