Ошибка при использовании JSON.NET

Я пытаюсь использовать JSON.NET, и после включения .dll и попытки использовать один из методов я получаю эту ошибку:

Не удалось загрузить файл или сборку «Newtonsoft.Json.Net35, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = 30ad4fe6b2a6aeed» или одну из ее зависимостей. Система не может найти указанный файл.

Кто-нибудь знает, почему я могу быть этой ошибкой?


person ryanzec    schedule 06.02.2011    source источник
comment
Как вы включили .dll? вы добавили ссылку на него?   -  person The Scrum Meister    schedule 07.02.2011
comment
да, просто добавил это как ссылку, как я всегда делаю   -  person ryanzec    schedule 07.02.2011


Ответы (4)


Две вещи, которые нужно проверить:

(1) Возможно, вам придется «разблокировать» DLL. По умолчанию, когда вы загружаете файл .zip из Интернета, этот файл и все файлы .dll или .exe, извлеченные из этого файла .zip, получают атрибут файловой системы, который предотвращает их загрузку и выполнение. Щелкните правой кнопкой мыши DLL в проводнике Windows, выберите «Свойства» и в появившемся диалоговом окне нажмите кнопку «Разблокировать». Или, что еще лучше, сделайте это для ZIP-файла, а затем повторно извлеките все файлы.

(2) Библиотека Newtonsoft JSON.NET поставляется в пяти вариантах: по одному для .NET 2.0, 3.5, 4.0, Silverlight и Windows Phone. Вам нужно использовать правильный для вашей конкретной среды. Я предполагаю, что это проект .NET 3.5?

person Ken Smith    schedule 06.02.2011
comment
в windows 7 нет опции разблокировки, но все остальное выглядит нормально. мой консольный проект настроен как для фреймворка 3.5. - person ryanzec; 07.02.2011
comment
@ryanzec - вы бы разблокировали его с помощью утилиты caspol.exe. Это установка с .NET 2.0. Обычно он находится в папке C:\Windows\Microsoft.NET\Framework\v2.0.50727. У вас, вероятно, это установлено. ;-) - person Enigmativity; 07.02.2011
comment
не похоже, что разблокировка является проблемой. - person ryanzec; 07.02.2011
comment
Вы также можете «разблокировать» zip-файл перед распаковкой. - person Kjetil Klaussen; 07.02.2011

В моем случае я решил эту проблему, как только понял, что библиотека, которую я использовал, сама использовала Json.NET, но с более ранней версией (3.5). Связывание второй библиотеки с новой версией Json.NET решило проблему.

Надеюсь это поможет.

person Stefano Ricciardi    schedule 20.04.2011

Вам необходимо загрузить выпуск 1 вместо выпуска 2 файла Newtonsoft.Json.

person Fabio Milheiro    schedule 28.04.2011

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

<?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-4.0.0.0" newVersion="4.5.0.0" />
            </dependentAssembly>
        </assemblyBinding>
    </runtime>
</configuration>

Похожие сообщения:

System.IO. Исключение FileNotFoundException

По крайней мере один модуль имеет неразрешенный импорт

Отладка тестов, для которых требуется внешняя библиотека dll

person Vladimir Shmidt    schedule 02.11.2012