-
Весь сегодняшний день - война с подгрузкой строго определённой версии .dll библиотеки модуля дизассемблирования.
При том, что на этапе запуска для каждого модуля дизассемблирования ищется его последняя версия (dll) и на основе последней версии создаётся объект, который управляет показом типа процессора, поддерживаемых ОС, форматов и вариантов формата файлов.
Собирается две версии DisAsm11 - под .NET 4.0 и .NET 9.0. И каждая из версий считала своим долгом выпендриться по своему. Несколько слабее четверка, а вот девятки - это был некий адЪ. Но всё было успешно преодалено.
На текущий момент мне пока не известно об ошибках, вроде всё работает более менее, так что начинается этап более глубоко тестирования.
- - - Добавлено - - -
А, нет, вспомнил, работа из командной строки - вот что ещё предстоит восстановить и допилить (там некоторое время была жОсткая завязка на PDP-11, которую выпилил) до универсальности и работе через инфу из модулей дизассемблирования.
Ну и прикинуть - всё ли процессорно-ОС-форматофайло-зависимое было выпилено из модуля визуализации и интерфейсной библиотеки.
Есть вероятность, что будет добавлен (в первую очередь для проверки концепции) ещё один вид процессора.
-
С утра на свежую голову поигрался с попеременной загрузкой - сохранённый сеанс из более старой версии модуля дизасма - загрузка исходного файл (должна загрузиться новая версия модуля дизасма) - да, всё ок, подгружаются нужные версии dll. А то уже засыпая - пришла в голову мысль - а как оно будет, если .NET 9 так долго сопротивлялся с загрузкой нужной версии. А нормально отрабататывает :)
-
Прошерстил код - вроде как да, в модуле визуализации зависимостей от pdp-11 или vax-11 не нашлось. Ну кроме работы с командной строкой.
-
В версии .NET 9.0 опять стала использоваться только последняя версия... Делаю перерыв в этих попытках, пока буду доработывать внутренности без проверок выбора версии в девятке.
Ну и ещё слегка отвлекусь на другое. Долгое мусолние мысли о том, что надо бы ещё одну программу переделать с C на C# наконец разродилось - процесс пошёл :) Программа большая, процесс будет долгий, как будет что показать - создам тему :)
-
В общем, после долгих и многочисленных попыток войны с загрузкой разных версий одного и того же модуля дизасма (в .NET 9.x) плюнул и сделал более простой вариант - модули (а точнее, в терминах .NET - сборки) будут отличаться не только версией но и именем. Тогда с точки зрения .NET - это РАЗНЫЕ сборки и никаких проблем (вроде) с загрузкой нет. Попробовал поиграться - вроде всё (ТТТ!) работает - попеременно грузил сохранненый из разных версиях сеанс. Технически - чуть сложнее с точки зрения настройки проекта - версию надо поменять в двух местах.
Теперь - разгрести завалы кода от пробных попыток и причесать его - и будем посмотреть на тесты.
Из ещё недоделанного - поддержка версионности при работе из командной строки плюс вернуть в ImageUtils возможность дизасмить блоки первичного и вторичного (если есть) загрузчиков