An option to relax the requirements to match assembly version referenced
I would like to have an option to relax the requirement for assembly version to match exactly with the referenced version. This can be done at least if the loaded assembly is higher than referenced version.
The logic that is used to resolve references of assemblies is rather complex. Adding further options to this would make it even more complex. Do you have a concrete suggestion how this could work?
Many times, I load two or more assemblies that reference different versions of same assembly. If ILSpy fails to find the specific version of a referenced, it becomes difficult to navigate to types in a decompiled code view even though another versioin of the same referenced assembly is loaded. I would like to be able to navigate the type in the different version of the referenced assembly if it is available (may be via a setting I can toggle or after displaying a message indicating it is in a different version etc.)
The changes in 4f8c588c7b6b932b4341f699fb42f1f0783f6e02 add a fallback so that - if no exact match is found - we try to select a "best match" from the list of loaded assemblies. @nvmkpk Does this improve or maybe even solve the situation for you?
It looks like the 6.1 update in Visual Studio marketplace has this change included, I will try this and let you know.
Not sure the mentioned fix actually works: I have a list of .NET 6 (RC1) assemblies including netstandard 2.1, but Assembly References to netstandard 2.0 always resolve to the 2.0.0.0, NETCoreApp, v2.1.18 version (not in the list), rather than the netstandard.dll in the assembly list (2.1.0.0, .NETCoreApp ,v6.0).