Supported platforms

We aim to make the Google Cloud Libraries for .NET run in as wide a set of environments as possible, where we have confidence that they will work correctly.

Libraries with dependencies on Google.Api.Gax 4.8.0 and later target the netstandard2.0 and net462 Target Framework Monikers. The netstandard2.0 target is supported by .NET Core 2.0, and .NET 5+, as well some versions of .NET Framework. .NET Core and .NET runtimes prior to .NET 6 are not supported by Microsoft however, and the support for the netstandard2.0 target from .NET Framework is complex. (See the Microsoft documentation for more details.)

Please see the Google Open Source .NET Support Policy (which are followed by Google Cloud Libraries for .NET) for details on how the set of supported platforms changes over time.

netstandard2.1 vs netstandard2.0

Client libraries with dependencies on GAX 4.0.x-4.7.x used Target Framework Monikers of netstandard2.1 and net462; in March 2024 we changed to use netstandard2.0 where possible to make the libraries compatible with other open source libraries targeting netstandard2.0, as most don't require anything from netstandard2.1. For most clients, this change will not be noticeable at all.

In testing this change, we discovered one very specific situation in which the change could break users. If gRPC client libraries are loaded via reflection using Assembly.LoadFrom, the version of the Grpc.Net.Client assembly loaded could change to the one with the netstandard2.0 target. This will always fail to create channels (even when running in a .NET runtime with full HTTP/2 support), leading to an attempt to use the Grpc.Core implementation. (This attempt will fail unless a Grpc.Core dependency is in place.) While we think it unlikely that customers will be using the libraries in this way, if you encounter this problem you can work around it by adding a direct Grpc.Net.Client dependency to your application. If this doesn't help, please file an issue with details.

Mobile platform support

We do not currently support Xamarin or Unity. While we would like to, there are significant challenges around providing the level of automated testing and developer reproducibility required for us to feel comfortable describing these platforms as "supported".

Additionally, the authentication model for the services is intended primarily for end user access to user-owned resources (such as calendars or documents), or for access based on Google Cloud projects. The latter adds challenges to accessing general Google services such as Cloud Speech-to-Text from user-owned devices.

For Unity users, we recommend consulting the Firebase Unity documentation to see whether the service you wish to access is covered by the Firebase Unity SDKs.

You may find that the packages provided work in some scenarios for Xamarin and Unity, but we are unable to provide support for this, and would recommend not relying on this for production applications.

We review our support for mobile platforms regularly, and hope to be able to support at least Xamarin and Unity at some point, but with no specific plans at the moment.