Rhino 8 + GH + dotnet, Identity.Client error

Hello,

I’m making a Grasshopper plugin that already works on Rhino 7. It uses the Grasshopper package and also the Microsoft.Identity.Client package for auth (it’s an internal work plugin so needs to use this).

When running on Rhino 8 and we get to any part of the code that uses Identity.Client package, we get the error:

Could not load type 'Microsoft.Identity.Client.BaseAbstractAcquireTokenParameterBuilder 1' from assembly 'Microsoft.Identity.Client, Version=4.22.0.0, Culture=neutral, PublicKeyToken=0a613f4dd989e8ae'.

We use Identity.Client v4.61.1, so I’m not sure which part is looking for v4.22.0.

I know that for Rhino 8 we need to make sure that we’re compatible with .Net 7, which I have done. The plugin is multi-targetting both framework and .net 7 and it builds fine, there are no build errors the above error only comes up when running in Grasshopper.

Has anyone experienced this/a similar issue? I don’t have any other plugins installed on Grasshopper so don’t think that there should be any conflicts there.

@Rory_Webber

Rhino ships with Microsoft.Identity.Client, Version=4.47.2.0 so this is most probably a dll conflict.
I am tagging @curtisw as he can help better.

Awesome, thank you! Changing to use 4.47.2 has made things work.

1 Like

I’ve just seen that CVE-2024-35255 has been issued which includes 4.47.2. Will the version shipped with Rhino be updated?

Hi, is there any other solution to this? My Grasshopper plugin uses Azure.Identity which requires Microsoft.Identity.Client >= 4.61.3. I can’t downgrade.