Автор Тема: Monodevelop работает с серьезными ошибками  (Прочитано 3407 раз)

Оффлайн Snake300

  • Начинающий
  • *
  • Сообщений: 5
Приветствую!
Имеем: ALT Workstation 8.2 64bit. Из репозитория был установлен monodevelop. Вместе с ним установились сам Mono (5.0.1.1) и другие необходимые библиотеки и утилиты.
При работе с IDE возникает множество ошибок. Например при попытки открыть  исходный код в редакторе вылетает ошибка: Error while loading style :Light. Также на некоторые команды меню нет вообще никакой реакции. При этом сборка проходит успешно, программа выполняется (во всяком случае простые консольные проекты).
Изучение лог-файлов показало возникновение множества ошибок. В частности программа ругается на отсутствие библиотек System.Xaml.dll, System.Runtime.Serialization.
Действительно в USR/LIB/MONO/GAC они отсутствуют, но есть в других каталогах Mono. Тупое переписывание их в каталоги GAC результата не дали.
Утилита gacutil отказывается регистрировать библиотеки ссылаясь на отсутствие Strong Name. Утилита sn при попытки подписать библиотеки выводит сообщение о неверном формате.
Сталкивался ли кто-нибудь с подобной ситуацией? Спасибо.

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 918
    • Домашняя страница
    • Email
Вешайте багу.
Андрей Черепанов (cas@)

Оффлайн Snake300

  • Начинающий
  • *
  • Сообщений: 5
При попытке открыть код в редакторе:

ERROR [2018-04-23 17:04:21Z]: Не удалось открыть файл "/home/sk/Документы/Mono/First/First/Program.cs".
System.IO.IOException: Error while loading style :Light ---> System.IO.FileNotFoundException: Could not load file or assembly 'System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies.


При попытке открыть окно About (О программе):

ERROR [2018-04-23 17:04:26Z]: Error while executing command: О программе
System.IO.FileNotFoundException: Could not load file or assembly 'System.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies.
File name: 'System.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'


Так же постоянно фиксируется это сообщение:

ERROR [2018-04-23 17:04:28Z]: GLib-Critical: Source ID 960 was not found when attempting to remove it
Stack trace:
  at GLib.Source.g_source_remove (System.UInt32 ) [0x00000] in <deca838db59d43b4a1bf3fed2d6928e9>:0
  at GLib.Source.Remove (System.UInt32 tag) [0x00000] in <deca838db59d43b4a1bf3fed2d6928e9>:0
  at GLib.Timeout+TimeoutProxy.Dispose (System.Boolean disposing) [0x00000] in <deca838db59d43b4a1bf3fed2d6928e9>:0
  at GLib.Timeout+TimeoutProxy.Finalize () [0x00000] in <deca838db59d43b4a1bf3fed2d6928e9>:0

Оффлайн yaleks

  • Мастер
  • ***
  • Сообщений: 6 233
А других пакетов с mono нет в системе?

Оффлайн Snake300

  • Начинающий
  • *
  • Сообщений: 5
А других пакетов с mono нет в системе?

Нет. Всё, что в системе есть, устанавливалось только с родного репозитория (altlinux.org).

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 918
    • Домашняя страница
    • Email
Пересобрать с 5-ым Mono надо, а то пишет, что собиралось с 4-ым.
Андрей Черепанов (cas@)

Оффлайн Snake300

  • Начинающий
  • *
  • Сообщений: 5
В общем Yaleks оказался прав. В системе так же был установлен пакет wine-mono. Видимо он шёл вместе с дистрибутивом ОС.

Проблему (или её часть - пока всё не тестировал) удалось решить копированием недостающих библиотек из GAC каталога пакета wine-mono (.WINE/DRIVE_C/WINDOWS/MONO...) в USR/LIB/MONO/GAC с воссозданием идентичной структуры папок.

Всем спасибо за участие.

Оффлайн yaleks

  • Мастер
  • ***
  • Сообщений: 6 233
Я был бы прав если бы вы удалили пакет wine-mono и все бы заработало.
А так надо багу чтобы monodevelop пересобирали.

Оффлайн Snake300

  • Начинающий
  • *
  • Сообщений: 5
Прошу прощения. Немного с тех пор разобрался в проблеме. Может быть будет кому-нибудь полезно.

Дело не в Wine. С ним в данном случае конфликта нет.  Проблема в изначальном отсутствии в кэше сборок .NET (GAC) отдельных библиотек . 4.0.0.0 в логах - это не версия Mono, это версия конкретных сборок (библиотек) .NET.

Сейчас Mono и Monodevelop пересобрали, в репозитории новые версии, и возможно проблема исчезла. Но если кто-то столкнулся - ищите вот эти сборки (assembly): System.Xaml.dll, System.Runtime.Serialization.dll, System.Data.dll и копируйте в GAC (кэш сборок) каталог с сохранением структуры.