Hey! I've got a bit of a weird issue and I'm stumped as to how to fix it:
I'm using Unity 2018.4.3 and Rider 2019.1.3. In my project, I have Firebase integrated. Firebase uses https://github.com/parse-community/Parse-SDK-dotNET to add newer .NET functionality (like Tasks) to older .NET standards. Somehow, Firebase's SDK takes care of the naming clashes when using the .NET 4.x scripting runtime, as I am in Unity 2018.4.3.
In Unity the project compiles nicely, but in Rider I get an error when awaiting FirebaseApp.CheckAndFixDependenciesAsync (a method returning Task<Firebase.DependencyStatus> (extra sidenote: the Task class returned is from within Parse-SDK-dotNET, not the standard .NET runtime)):
'Type 'System.Threading.Tasks.Task<Firebase.DependencyStatus>' is not awaitable.'
The code functions as it's supposed to, so it seems like Rider doesn't understand what's going on between the different assemblies. If I try the stripped down code:
public Task<DependencyStatus> InitFirebaseAsync()
{
return FirebaseApp.CheckAndFixDependenciesAsync();
}
I get the error:
Cannot convert expression type 'System.Threading.Tasks.Task<Firebase.DependencyStatus> [Firebase.App, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]' to return type 'System.Threading.Tasks.Task<Firebase.DependencyStatus> [netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51]'
Which points to a clash between the two assemblies. How can I get Rider to figure out the difference?
Thanks in advance!