Не удалось загрузить файл или сборку "Newtonsoft.Json" Version = 11.0.0.0

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

Каждый раз, когда я открываю свой компонент скрипта в Visual Studio 2015 (v14.0.25431.01 update 3), он говорит мне, что мне не хватает ссылки на Newtonsoft.Json. Поэтому я перехожу в менеджер пакетов NuGet, и он просит меня восстановить, что я делаю, и говорит, что он успешно завершен.

Затем я сохраняю и пытаюсь запустить свой SSIS-пакет и получить следующую ошибку.

Не удалось загрузить файл или сборку "Newtonsoft.Json, Version = 11.0.0.0, Culture = neutral, PublicKeyToken = 30ad4fe6b2a6aeed" или одну из его зависимостей. Система не может найти указанный файл.

Мой файл package.config выглядит так.

    <?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Newtonsoft.Json" version="11.0.1" targetFramework="net45" />
</packages>

и мой файл app.config выглядит так.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
      <assemblyIdentity name="Newtonsoft.Json"
                publicKeyToken="30AD4FE6B2A6AEED" culture="neutral"/>
      <bindingRedirect oldVersion="0.0.0.0-11.0.0.0" newVersion="11.0.0.0"/>
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

Я могу перейти в папку, которую она ищет, и посмотреть файл.dll

C:\Users\lp1.db\AppData\Local\Temp\Vsta\SSIS_SC130\VstaGbmf__V5kCUWonnRT2qrG_g\пакеты\Newtonsoft.Json.11.0.1\Lib\net45\Newtonsoft.Json.dll

У кого-то еще была эта постоянная проблема, когда он терял способность находить файл, несмотря на то, что был установлен.

Ответы

Ответ 1

Удалите все ссылки на Newtonsoft.Json во всех ваших проектах.

Перейдите в Nuget Package Manager (щелкните правой кнопкой мыши по решению), загрузите последнюю версию Newtonsoft.Json и выберите все проекты для ее использования и переустановите.

Убедитесь, что у pack.config установлена последняя версия:

<packages>
  <package id="Newtonsoft.Json" version="11.0.2" targetFramework="net461" />
</packages>

Восстановить решение.

Ответ 2

Это одна из наиболее распространенных проблем в.NET-проектах. В основном кто-то сделал ссылку непосредственно на локальную сборку вместо управления пакетом через NuGet или проект был сделан для компиляции в другой версии.NET. Лучший способ решить эту проблему - найти ссылку в ссылках на проект, удалить ее, очистить проект, проверить, удалила ли DLL и, наконец, переделать ссылку с помощью NuGet.

Ответ 3

Попробуйте скопировать NewtonSoft.Json в папку Runtime SQL SSIS

C:\Program Files (x86)\Microsoft SQL Server\[SQL Server version]\DTS\Binn

пример (SQL Server 2016)

C:\Program Files (x86)\Microsoft SQL Server\130\DTS\Binn

Ответ 4

Попробуйте очистить свой проект.

Чистый проект в Visual Studio

Если это не работает, удалите ссылку по ссылкам. Сохраните файл dll в папке bin и добавьте его снова. Просмотрите свой файл, выберите его и нажмите ОК.