Is it possible to enumerate all installed versions of an assembly in GAC using C#? For example I have the assembly named "My.Assembly". The assembly may come in various versions ("1.0.0.0", "2.3.4.5", "0.1.2.4", ...) and may be compiled for various platforms (x86, x64, Any CPU).
Now I need a way to determine which of the versions/platforms are installed.
I'm aware that I could enumerate the directories in GAC but that seems wrong. There should be a better way to do this.
Background I have a launcher application in which the user selects a DLL. The launcher retrieves some information from the DLL (without loading it) and then has to start the correct managed C# application which handles the DLL. The DLL may be compiled for Win32 or x64 put exposes always the same (platform independent) interface. I use the LoadLibrary function to load the DLL in the C# applicaiton. The only problem is that the process has to be of matching format (x86 or x64). The C# application can and should be compiled for x86, x64 and Any CPU.