Перечисление всех установленных версий сборки (в GAC)

Можно ли перечислить все установленные версии сборки в GAC с помощью C#? Например, у меня есть сборка с именем " My.Assembly". Сборка может иметь различные версии ("1.0.0.0", "2.3.4.5", "0.1.2.4", ...) и может быть скомпилирована для различных платформ (x86, x64, Any CPU)

Теперь мне нужен способ определить, какие версии/платформы установлены.

Я знаю, что могу перечислить каталоги в GAC, но это кажется неправильным. Должен быть лучший способ сделать это.

Фон У меня есть приложение запуска, в котором пользователь выбирает DLL. Средство запуска извлекает некоторую информацию из DLL (не загружая ее), а затем запускает правильное управляемое приложение C#, которое обрабатывает DLL. DLL может быть скомпилирована для Win32 или x64, но всегда предоставляет один и тот же (независимый от платформы) интерфейс. Я использую функцию LoadLibrary для загрузки DLL в приложение C#. Единственная проблема заключается в том, что процесс должен иметь соответствующий формат (x86 или x64). Приложение C# можно и нужно компилировать для x86, x64 и любого процессора.

5
задан Korexio 15 June 2012 в 12:49
поделиться