Scimiazzurro Ответов: 2

формат JSON.NET не работает с Mono в Debian


Я делаю приложение с C# и Mono framework (чтобы сделать его совместимым с Linux).

В этом приложении я использую также Json.NET library, но она, похоже, не работает с Mono, потому что каждый раз, когда я пытаюсь запустить приложение, я получаю эту ошибку:

Отсутствует метод .ctor в сборке /root/igloo/Newtonsoft.Json.dll, тип System.Runtime.Услуги компиляторов.Применение extensionattribute
Не удается найти пользовательский образ конструктора attr: /root/igloo/Newtonsoft.Json.dll mtoken: 0x0a000077
[20/03/14 06:11:50] Система.UnhandledExceptionEventArgs
[Ошибка] фатальное необработанное исключение: система.TypeLoadException: не удалось загрузить тип ' System.Runtime.Услуги компиляторов.ExtensionAttribute' from assembly 'Newtonsoft.Формат JSON'.
в иглу.ядро.основная система.String[] args) [0x00000] in <filename unknown=""> : 0

Почему так происходит? Я использую mono-complete (версия 2.10) и Debian 7 64bit.

2 Ответов

Рейтинг:
1

AdamWhitehat

Судя по ошибке, он не может найти библиотеку DLL. Поместите библиотеку DLL рядом с исполняемым файлом или выполните команду:

sudo apt-get install Newtonsoft.Json
и тогда, я думаю, среда выполнения будет знать, где искать.


Рейтинг:
0

Vladimir Svyatski

Здесь вы можете найти некоторую информацию об этом классе. Как я вижу, этот класс был представлен в .Net 3.5, так что этот материал может не поддерживаться Mono. Просто для того, чтобы вы знали: не каждая функция .NET поддерживается Mono. формат JSON.NET также может не поддерживаться Mono должным образом. Поэтому я бы посоветовал проверить совместимость вашей моно - версии с соответствующими версиями .NET framework. Кроме того, существует несколько сборок Json.Сеть для разных .сетевая версия. Попробуйте поиграть с ними. Также, Фреймворк Qt это гораздо лучший выбор для написания кроссплатформенных приложений. Этому не так уж трудно научиться.