Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Celeste64 crashes immediately if the 2015 Visual C++ Redistributables aren't installed #97

Open
SnipUndercover opened this issue Aug 17, 2024 · 0 comments

Comments

@SnipUndercover
Copy link

One of Celeste64's dependencies, FosterPlatform.dll, has a dependency on VCRUNTIME140.dll, which is a part of 2015 Visual C++ Redistributables.
This means that if they aren't installed, Celeste64 will crash immediately with the error below:

System.TypeInitializationException: The type initializer for 'Foster.Framework.Platform' threw an exception.
 ---> System.DllNotFoundException: Dll was not found.
   at Foster.Framework.Platform.FosterRegisterLogMethods(FosterLogFn, FosterLogFn, FosterLogFn, Int32)
   at Foster.Framework.Platform..cctor()
   --- End of inner exception stack trace ---
   at Foster.Framework.Platform.ToUTF8(String& )
   at Foster.Framework.App.Run(String, Int32, Int32, Boolean , Renderers )
   at Foster.Framework.App.Run[T](String, Int32, Int32, Boolean , Renderers )
   at Celeste64.Program.Main(String[]) in D:\a\Celeste64\Celeste64\Source\Program.cs:line 25

This happened after a person from the Celeste discord tried to run the itch.io build.
It seems others were also experiencing the issue; see #81 and #76.

I built Celeste64 in Debug and sent the person the build. After running they got a more descriptive error:

System.TypeInitializationException: The type initializer for 'Foster.Framework.Platform' threw an exception.
 ---> System.DllNotFoundException: Unable to load DLL 'FosterPlatform' or one of its dependencies: The specified module could not be found. (0x8007007E)
   at Foster.Framework.Platform.FosterRegisterLogMethods(FosterLogFn info, FosterLogFn warn, FosterLogFn error, Int32 level)
   at Foster.Framework.Platform..cctor()
   --- End of inner exception stack trace ---
   at Foster.Framework.Platform.ToUTF8(String& str)
   at Foster.Framework.App.Run(String applicationName, Int32 width, Int32 height, Boolean fullscreen, Renderers renderer)
   at Foster.Framework.App.Run[T](String applicationName, Int32 width, Int32 height, Boolean fullscreen, Renderers renderer)
   at Celeste64.Program.Main(String[] args) in Celeste64/Source/Program.cs:line 26

Looking into the dependencies for FosterPlatform.dll, I found that it depends on the VC++ redists.

Dependency graph for FosterPlatform.dll, which highlights VCRUNTIME140.dll

After asking the person to install them the game begun working normally.
This probably is a Foster issue more than it is Celeste64's, but I'm not sure whether this should be reported there.
However, Celeste64 should clarify that the VC++ redistributables need to be installed in the Requirements section in the Releases page.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant