Нагрузка сильно отмеченная сборка с конкретного пути?

StackOverflow https://stackoverflow.com/questions/3103858

  •  29-09-2019
  •  | 
  •  

Вопрос

У меня сильно называемая сборка, установленная в определенную папку (а не GAC).

Имя, как показано в отражателе:

"Foo.Bar.TreeFrog, Version=1.2.1.0, Culture=neutral, PublicKeyToken=ac88c4a8b22089b4"

и путь, по которому он установлен

"c:\\QueueBall"

Могу ли я использовать Assembly.Load или Assembly.LoadFrom загрузить его, а если так?

Могу ли я убедиться, что сильное именование удостоено чести, то есть, что DLL, который я загружаю, действительно - тот, который я ожидаю, а не самозванец с тем же именем?

Это было полезно?

Решение

Вы могли бы использовать Loadfrom.:

var assembly = Assembly.LoadFrom(@"c:\QueueBall\Foo.Bar.TreeFrog.dll");

Обратите внимание, что это также загрузит ссылочные сборки в домен приложения, выполняющий этот код. Если вы не хотите, чтобы это поведение вы могли бы использовать Нагрузка метод.


ОБНОВИТЬ:

Вы можете проверить идентификацию сборки перед загрузкой, чтобы убедиться, что она не была подделана:

AssemblyName an = AssemblyName.GetAssemblyName(@"c:\QueueBall\Foo.Bar.TreeFrog.dll");
byte[] key = an.GetPublicKey();
Version version = an.Version;
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top