These are the docs for 13.3, an old version of SpatialOS. The docs for this version are frozen: we do not correct, update or republish them. 14.5 is the newest →

C# Platform SDK


The SDK is compiled against .NET framework v4.5, so it should work on any compatible .NET framework version. Both Mono 5 or .NET Core 2 are good choices that work on Linux, MacOS and Windows.


Currently, we provide two ways to download C# Platform SDK: NuGet and the spatial package manager.

For normal develop environments we recommend NuGet, as it takes care of downloading dependencies and configuring your project file correctly.

For secure environments, the spatial package manager is the only option for downloading a bundle of the DLL and XML and its dependencies together.


The easiest way to install the C# Platform SDK is via NuGet - simply add the latest version of the NuGet package Improbable.SpatialOS.Platform to your project via your IDE.

spatial package manager

You can use the spatial CLI tool to download a ZIP file containing the Platform SDK and its dependencies. To download to the file, run:

spatial package get platform_sdk csharp <version>

Once downloaded, unzip the file and reference all DLLs. The dependencies include the C# gRPC runtime, which you can’t reference directly, but you should still include it in your project and configure it to be copied to the output folder.


Unauthenticated error

Unhandled Exception: Grpc.Core.RpcException: Status(StatusCode=Unauthenticated, Detail="Getting metadata from plugin failed with error: Exception occured in metadata credentials plugin.")

This error arises because the refresh token the Platform SDK is using has either expired or is invalid. As a result, the SDK is unable to authenticate with the SpatialOS platform.

If you’re providing the refresh token either as a string or as a file, check if it’s the right string/file and if it’s still valid.

If you’re relying on the SDK reading your refresh token from the default location (mentioned in the spatial auth login documentation), run spatial auth login to refresh the token.

Assembly version mismatch

If the project file is not configured correctly, you might get this error:

Unhandled Exception: System.IO.FileLoadException: Could not load file or assembly 'Google.Apis.Auth, Version=, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab'.

This occurs when one of the dependencies was compiled with a different version of an assembly that can’t be satisfied through dependency resolving.

You can fix it with either a specific assembly redirect binding or a generic tag <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> in your project file.

Search results

Was this page helpful?

Thanks for letting us know!

Thanks for your feedback

Need more help? Ask on the forums