#c_sharp #net
Мне необходимо при загрузке дотнет сборки (в виде файла, или набора байтов) на мой сервис получить публичный ключ, которым она подписана, каким образом мне это можно сделать? Что я пробовал: Загрузить через Assembly.Load её я не могу, так как у неё могут быть зависимые сборки которые тоже должны быть загружены (а их у меня нет). Создать временный аппдомен, загрузить в него сборку через Assembly.ReflectionOnlyLoad (через маршалинг .DoCallback), а затем выгрузить аппдомен после извлечения публичного ключа. Тут я сталкиваюсь с тем, что даже если я выгружаю аппдомен - у меня периодически падает загрузка пересобранной сборки с той же версией (например для другого фреймворка).
Ответы
Ответ 1
Вы можете использовать для этого библиотеку Mono.Cecil которая так же доступна через NuGet. var assembly = Mono.Cecil.AssemblyDefinition.ReadAssembly("fileName"); var publicKey = assembly.Name.PublicKey;
Комментариев нет:
Отправить комментарий