Skip to content

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

Open
@SnipUndercover

Description

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions