Не удалось загрузить файл или сборку 'System.Memory, версия = 4.0.1.'в Visual Studio 2015 - PullRequest
1 голос
/ 04 апреля 2019

В течение нескольких месяцев у меня не было проблем с генерацией модели из БД путем ее удаления и воссоздания. После извлечения из git возникла проблема при попытке выполнить тот же процесс. После второго шага (создание строки соединения с БД) на 3-м шаге больше не происходит, и в файле app.config не создается строка соединения с базой данных. Я попытался проверить соединение с учетными данными базы данных и я получаю следующее.

connection test failed

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

System.Data.Entity.Core.EntityException: ошибка произошла во время закрытие соединения с провайдером. Смотрите внутреннее исключение для деталей. ---> System.IO.FileNotFoundException: не удалось загрузить файл или сборку 'System.Memory, версия = 4.0.1.0, культура = нейтральная, PublicKeyToken = cc7b13ffcd2ddd51 'или одна из его зависимостей.

Я переустановил Entity Framework и пакеты npgsql и попытался добавить все (одинаковые) сборки, но безуспешно. Подобные ответы в Stack не решили мою проблему. (Мне разрешено работать с текущими версиями без дальнейших обновлений в VS или в любом из его пакетов.)

! Примечание : я получаю все соответствующие данные из своих служб, когда использую вызовы API с текущей моделью (правильное взаимодействие с БД), но не могу сгенерировать новую модель из БД.

Есть какие-нибудь решения?

Я использую

  • Windows 10
  • VS 2015
  • EntityFrameWork 6.2.0
  • Npgsql 3.1.1
  • .Net v.4.6.2
  • Asp.net

    Заранее спасибо!

Ответы [ 3 ]

1 голос
/ 04 апреля 2019

ok Решено!

По некоторым причинам определенный пакет слепков не был установлен должным образом, и у меня не было возможности сравнить его со старым файлом, потому что я испортил файл резервной копии. Я снова клонировал хранилище(даже если бы мне пришлось отказаться от некоторого прогресса).Шаги:

  1. У меня возникли проблемы с версией .Net при загрузке через диспетчер пакетов nugget, поэтому мне пришлось сделать это вручную.

  2. Я скачалФайл .nupkg из https://www.nuget.org/packages/System.Memory/

  3. Извлечен dll с помощью пакетного файла, найденного в https://gist.github.com/fex80/976ff887acb825171de6

  4. Скопирован в папку bin соответствующего проекта.

  5. Перестройте проект и наконец он заработал.

Большое спасибо за ваш вклад!

0 голосов
/ 04 апреля 2019

Используйте IL Disassembler (ildasm.exe), чтобы проверить, совпадает ли версия в выходном каталоге с той, которая указана в сообщении об ошибке.
Наше программное обеспечение часто сталкивается с такими проблемами, потому что разные пакеты nuget требуют разных версий вместе снеприятное сочетание библиотек, которых нет в nuget.
Необходимость разных версий одной и той же библиотеки не учитывается процессом сборки.

Если несоответствие версий действительно является причиной вашей проблемы, возможно, вы ищетедля привязки перенаправлений в вашем app.config для пересылки всех более старых версий этой библиотеки в самую новую.
Что-то подобное нужно добавить в узел <dependentAssembly> рассматриваемой библиотеки:

<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />

ildasm обычно можно найти здесь (в зависимости от версии Visual Studio)
C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v8.1A \ bin \ NETFX 4.5.1Инструменты \ ildasm.exe

0 голосов
/ 04 апреля 2019

Из быстрого поиска в Google я нашел это: https://github.com/GrillPhil/ServerlessRealtimeDemo/issues/1

Я не знаю, устарело ли это, но вы пытались установить целевую версию для Windows 10, версия 1803 (10.0;Сборка 17134) и минимальная версия до Windows 10 Fall Creators Update (10.0; сборка 16299) в свойствах вашего проекта?

enter image description here

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