Я пытаюсь обновить приложение WPF с .NET Framework 4.7.2 до .NET 8. Используя параметр «Обновить» в Visual Studio, я обновил все свои проекты и разрешил свои зависимости.
Чего я не могу понять, так это почему я получаю несколько ошибок, которые выглядят следующим образом:
- Ошибка XamlC XFC0000: невозможно разрешить тип «Приложение».
- Ошибка XamlC XFC0000: невозможно разрешить тип «Окно».
- Ошибка XamlC XFC0000: невозможно разрешить тип «UserControl».
Поиск в Google дает результаты для .NET Maui и Xamarin, я не думаю, что что-то из этого ко мне не применимо.
Как исправить эти ошибки? Я что-то пропустил?
Я забыл о папках .vs. Я вернулся и удалил все папки bin, obj и .vs и дважды проверил тег UseWPF. Все еще имею ту же проблему. :(
Ба. Единственное, о чем я могу думать, это сама установка Visual Studio. При установке VS в разделе «Рабочие нагрузки» вам понадобится «Разработка настольных компьютеров .NET». Возможно, это слишком рискованно, но мне интересно, установлен ли у вас MAUI (следовательно, он пытается скомпилировать XAML с использованием XamlC, что определенно является особенностью MAUI), но нет предварительных требований WPF, поэтому он возвращается к компилятору MAUI. В .NET Framework WPF был встроен, но в Core и выше его необходимо включать отдельно.
После двойной проверки установки я убедился, что у меня определенно не установлен MAUI. Но ваш комментарий о включении WPF .NET framework заставил меня внимательно и внимательно изучить файл .csproj. В итоге я избавился от всего и добавил обратно только самое необходимое. Кажется, теперь это работает. Если вы хотите напечатать официальный ответ по этому поводу, я буду рад его принять, поскольку вы нашли время, чтобы мне помочь.
Я не знаю, как вы его обновили, но когда я перешел с .NET Framework на .NET, я нашел единственный надежный способ сделать это — вручную воссоздать проекты в .NET 5. Просто визуально сравнив «обновленную» версию. «чистому» казалось, что это правильный путь.
Большой! Рад помочь и очень ценю.





Преобразование проекта WPF из .NET Framework в .NET Core/6/7/8/и т. д. может быть немного сложнее, поскольку, хотя код и XAML не требуют изменений, файлы проекта совершенно разные, как и выходные файлы.
Если у вас возникли проблемы с преобразованием (ручным или автоматическим), попробуйте выполнить стандартные действия по устранению неполадок:
<UseWPF>true</UseWPF> имеет свойство <TargetFramework>netX.0-windows</TargetFramework>.
Я собирался написать: «Вы уверены, что это не проект MAUI или Xamarin?» Я предполагаю, что вы попробовали все обычные шаги - очистку каждой папки bin/obj, даже очистку всех скрытых папок .vs и т. д.? Кроме того, всем правильным проектам помимо
<UseWPF>true</UseWPF>необходимо свойство<TargetFramework>net8.0-windows</TargetFramework>. Это все очевидное, что приходит на ум.