Assembly.Load завершается неудачно в тестовом примере (строгая проверка имен также не проходит) ... почему? - PullRequest
0 голосов
/ 04 мая 2018

Я настраивал несколько тестовых случаев, и часть из них хотела убедиться, что я смогу запустить некоторые тесты EntityFramework.

У меня проблемы с загрузкой драйвера (в данном случае Npgsql). Я могу загрузить его в приложение, но не тестовый пример.

Я собрал тривиальный проект, показывающий проблему. https://github.com/scornflake/StrongNameNightmare

а) Загрузка сборочных работ из приложения b) та же самая Assembly.Load в тестовом случае завершается с ошибкой (не удалось загрузить файл или сборку 'Npgsql.EntityFrameworkCore.PostgreSQL, версия = 2.0.2.0, Culture = нейтральный, PublicKeyToken = 5d8b90d52f46fda7' или один из его Зависимости. Подпись строгого имени не может быть проверена. Возможно, сборка была подделана или подписана с задержкой, но не полностью подписана с использованием правильного закрытого ключа.)

SHA1 двух файлов (один в пакетах \ и тот, который копируется в выходную папку сборки) идентичны:

  • SHA1-хэш пакетов \ Npgsql.EntityFrameworkCore.PostgreSQL.2.0.2 \ lib \ netstandard2.0 \ Npgsql.EntityFrameworkCore.PostgreSQL.dll: 29261f08a466e3b5c24ff8d1aa1810b29c3ff8a5
  • SHA1-хэш тестов \ bin \ Debug \ Npgsql.EntityFrameworkCore.PostgreSQL.dll: 29261f08a466e3b5c24ff8d1aa1810b29c3ff8a5

Работает 'sn -v' пакетов \ Npgsql.EntityFrameworkCore.PostgreSQL.2.0.2 \ lib \ netstandard2.0 \ Npgsql.EntityFrameworkCore.PostgreSQL.dll.

'sn -v' тестов \ bin \ Debug \ Npgsql.EntityFrameworkCore.PostgreSQL.dll завершается ошибкой

Failed to verify assembly -- Strong name validation failed.

Я предполагаю, что отказ в проверке строгого имени версии 'tests' драйвера Npgsql является основной причиной сбоя загрузки сборки в тесте.

Я пытался отключить проверку строгого имени (sn -Vr *, *) без эффекта.

Я немного растерялся. Я не эксперт в VS / Assemblies, возможно, кто-то может пролить свет на то, почему сборка не прошла проверку строгого имени в другой папке? Мне кажется очень странным.

1 Ответ

0 голосов
/ 06 мая 2018

Я так и не нашел основную причину, но переключение с xUnit на NUnit решает ошибку .Load. Итак, я думаю, я просто пойду с NUnit!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...