Новый проект приложения .Net MAUI выдает ошибки сборки «Имя InitializeComponent» не существует в текущем контексте.

Я попытался начать играть с .Net MAUI и настроил свою среду разработки, следуя шагам, описанным в:

  1. https://docs.microsoft.com/en-us/dotnet/maui/get-started/first-app?pivots=windows
  2. https://docs.microsoft.com/en-us/windows/apps/project-reunion/set-up-your-development-environment#required-workloads-and-components
  3. https://docs.microsoft.com/en-us/xamarin/android/get-started/installation/android-emulator/device-manager?tabs=windows&pivots=windows

Я также запустил инструмент CLI «maui-check», и все проверилось, но когда я создаю новое приложение .NET MAUI с Visual Studio 2019 v16.11.0 Preview 2.0 (работает в Windows 10 Home 20H2), я получаю « Имя «InitializeComponent» не существует в ошибках сборки текущего контекста. Он также не находит ссылок на какие-либо элементы управления в форме, например. «Имя CounterLabel не существует в текущем контексте»

Я пробовал почти все в этом сообщении имя ' InitializeComponent" не существует в текущем контексте, который содержит такие предложения, как добавление и удаление файлов, внесение изменений и возврат их обратно... в основном все, кроме броска пенни в колодец желаний.

Я обнаружил, что распространенной ошибкой является несоответствие пространств имен, но вот то, что я показал, что пространства имен верны:

Приложение.xaml:

<Application xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:local="clr-namespace:MauiApp1"
             x:Class="MauiApp1.App">
    ...
</Application>

App.xaml.cs

using Microsoft.Maui;
using Microsoft.Maui.Controls;
using Microsoft.Maui.Controls.PlatformConfiguration.WindowsSpecific;
using System;
using Application = Microsoft.Maui.Controls.Application;

namespace MauiApp1
{
    public partial class App : Application
    {
        public App()
        {
            InitializeComponent(); <-- This is throwing the build error...
        }

        protected override IWindow CreateWindow(IActivationState activationState)
        {
            this.On<Microsoft.Maui.Controls.PlatformConfiguration.Windows>()
                .SetImageDirectory("Assets");

            return new Microsoft.Maui.Controls.Window(new MainPage());
        }
    }
}

Главная страница.xaml:

ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="MauiApp1.MainPage"
             BackgroundColor="{DynamicResource PageBackgroundColor}">

            ...
</ContentPage>

MainPage.xaml.cs

using System;
using Microsoft.Maui.Controls;

namespace MauiApp1
{
    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent(); <-- This is throwing the build error...
        }

        int count = 0;
        private void OnCounterClicked(object sender, EventArgs e)
        {
            count++;
            CounterLabel.Text = $"Current count: {count}"; <-- This is throwing the build error...
        }
    }
}

Любая помощь будет оценена!

---=== ОБНОВЛЕНИЕ ===---

Путь к созданному мной проекту: c:\develop\c#...... как только я скопирую проект в папку, не содержащую 'c#', все заработает. Это явно приводит к сбою некоторых операций синтаксического анализа в фоновом режиме.


person mnemonic    schedule 19.06.2021    source источник


Ответы (2)


Я столкнулся с той же проблемой и, похоже, когда я создал ContentPage в VS, он все еще указывал на Xamarin Forms. После изменения пространства имен на MAUI я обновил действие сборки (щелкните правой кнопкой мыши на странице XAML > > свойства > > BuildAction) страницы XAML на MauiXaml, и это сработало для меня.

person Geethu Vinod    schedule 04.07.2021
comment
Также не забудьте удалить все, что указано в разделе «Пользовательский инструмент и пространство имен пользовательского инструмента». - person ben; 05.07.2021

Путь к созданному мной проекту: c:\develop\c#...... как только я копирую проект в папку, не содержащую 'c#', он работает. Это явно приводит к сбою некоторого синтаксического анализа в фоновом режиме.

person mnemonic    schedule 20.06.2021