Skip to content

1 Intro

Media Explorer edited this page Sep 23, 2025 · 1 revision

1 Intro

ME: Привет! Хочу порефакторить отреверсенный код экспериментального браузера MetroSurf, портирование которого начато с WP8 в UWP (использую Win. SDK 19041 и Min. Win. SDK 15063, чтобы обеспечить совместимость с ныне редкой ОС Windows 10 Mobile и ретро-смартфонами Nokia Lumia). Программа не компилируется, в ней куча ошибок. Помоги мне разобраться с этой проблемой, пожалуйста. Прежде всего, часть xaml файлов порушена (вьюшки, контролы), нужно творчески исследовать названиевьюшки.cs , и попытаться воссоздать пору названиевьюшки.xaml.cs+названиевьюшки.xaml. Элементы, которые надо воссоздать в xaml. в cs файлах помечены как [GeneratedCode("Microsoft.Windows.UI.Xaml.Build.Tasks", " 4.0.0.0")] private... Функции, перед которыми [GeneratedCode("Microsoft.Windows.UI.Xaml.Build.Tasks", " 4.0.0.0")] [DebuggerNonUserCode] надо удалять, это артефакты декомпилятора!

AI: Сделал первые правки для LoginPage и воссоздал XAML-контейнер — кратко: Что изменено • Отредактирован MetroSurf\View\LoginPage.cs: • Удалены артефактные декомпиляторные методы/атрибуты (генерируемые InitializeComponent/Connect с [GeneratedCode]/[DebuggerNonUserCode]). • Класс сделан partial-совместимым и оставлены поля UI-элементов, как в decompiled-версии. • Добавлен минимальный stub InitializeComponent() (пустой) до тех пор, пока не появится корректный XAML-generated partial. • Упрощён вызов диспетчера (заменил сложный с компиляторными делегатами на обычный Dispatcher.RunAsync с лямбдой). • Создан MetroSurf\View\LoginPage.xaml с базовой разметкой и именованными элементами (LayoutRoot, ProgressBar, ProgressBarForAutoLogin, LoginButtons, icn_add, icn_kid, icn_g, icn_f, logo_keepsolid) — эти имена соответствуют полям в .cs. Почему так • Декомпилированный код содержал autogenerated методы/атрибуты, которые мешают чистоте проекта и вызывают лишние ошибки; их надо удалять или заменять реальной xaml-генерацией. • Пока отсутствует корректно сгенерированный partial класс от XAML, нужен stub InitializeComponent, иначе сборка падает. Что дальше • Выполните полную сборку решения в Visual Studio (или запустите сборку в CI) и пришлите список оставшихся ошибок/логи — дальше я продолжу по ним. Сейчас в моих проверках видны системные/ссылочные ошибки (mscorlib / предопределённые типы) — вероятно, это глобальная проблема конфигурации проекта/SDK, а не конкретно LoginPage. • Если хотите, продолжу восстанавливать XAML+cs для других вьюшек, помеченных полями с [GeneratedCode]. Скажите, с какой вьюшки продолжить.

ME: Copilot, спасибо большое!! Ты крут. Пожалуйста, продолжи восстанавливать XAML+cs для других вьюшек, помеченных полями с [GeneratedCode]. Молодец, что в класс добавляешь partial. Исли видишь, что класс наследуется не от одного класса, а еще от интерфейса, интерфейс удаляй (это тоже артефакт декомпилятора). Ну и хорошо бы в проектном файле добавлять зависимость в паре названиевьюшки.xaml.cs+названиевьюшки.xaml

(to be continued...)

Clone this wiki locally