Resolution: Won't Fix
Affects Version/s: None
Fix Version/s: None
Component/s: C# - Library
As discussed in
THRIFT-4535, it would be great if we could update "lib/csharp" to use the new "csproj" project system. This will allow us to target multiple platforms and the new ".NET Standard" with a single project.
It's possible to support pretty much every platform there is with this new project format (see e.g. Newtonsoft.Json), however supporting older platforms requires more work as this requires more #if statements etc.
This means that we have to decide which platforms we want to support!
Targeting ".NET Standard 2.0" would be the easiest option as this version covers a much larger API surface. However, this would also mean that people have to use rather recent versions of their platforms to use it, as .NET Standard 2.0 requires the following minimum versions:
- .NET 4.6.1 (adding support for .NET 4.5 is no problem though)
- .NET Core 2.0
- Mono 5.4
- Xamarin.iOS 10.14
- Xamarin.Mac 3.8
- Xamarin.Android 8.0
- UWP 10.0.16299
I will create a PR that targets .NET Standard 2.0 and .NET 4.5 to show what the new project files would look like. If the approach is OK for you in general, then I can try to add support for whatever minimum versions you'd like to support.