Irfan Ahmed, Senior Support Escalation, brings us his experience while working with one of his customers, in the below mentioned amazing post.
In recent past I come across an issue where is customer login to Visual Studio 2013, he gets the following error.
Method not found 'Void Newtonsoft.Json.Serialization.JsonDictionaryContract.set_PropertyNameResolver (System.Func\2<System.String.System.Strings>)'
Customer does have have JSON dll installed on the machine. This is a common scenario and JSON is installed as NUGET packet and it should work.
Later working on the different log file including the process monitor log, we have found that there is an old version of the JSON dll installed by the Telerik product in the GAC and that is getting called while we sign into Visual Studio. This is expected behavior of loading a DLL from GAC first.
We do see some references on the .net where it has been confirmed that the issue is with the Telerik and its installed a old version of JSON which doesn’t have method which Visual Studio is called and hence the above mentioned error reported by VS.
To resolve the issue, you need to uninstall the version of JSON installed by the Telerik or if you are not using Telerik, you can uninstall it.
Unable to Unregister the dll from GAC?
Sometime you get following Error in uninstalling the dll from the GAC
Warning. Changing the registry key un appropriately can harm your system. Please take backup before making any changes.
Open “regedit” and navigate to “HKEY_CLASSES_ROOT\Installer\Assemblies\Global”. In this location one can find the list of all the assemblies which are registered in GAC. Delete the appropriate Newtonsoft.Json entry from this list. Now you can uninstall the assembly from GAC as well.
Written by :Irfan Ahmed; Senior Support Escalation Engineer, India/Emea Languages Team
Reviewed by: Rachan, Escalation Engineer, Languages team