32

I've attempted to start playing with .Net MAUI and I've setup my development environment following the steps as described in:

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

I've also run the 'maui-check' CLI tool and everything checks out, but when I create a new .NET MAUI App with Visual Studio 2019 v16.11.0 Preview 2.0 (running on Windows 10 Home 20H2), I get the 'The name 'InitializeComponent' does not exist in the current context' build errors. It also doesn't find the references to any controls on the form e.g. 'The name 'CounterLabel' does not exist in the current context'

I've tried almost everything in this post The name 'InitializeComponent' does not exist in the current context which contains suggestions like adding and removing files, making changes and changing them back... basically everything except throwing a penny in a wishing well.

I found that a common mistake is a namespace mismatch, but here is what I have showing that the namespaces are correct:

App.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());
        }
    }
}

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...
        }
    }
}

Any help will be greatly appreciated!

---=== UPDATE ===---

The path to the project I created is c:\develop\c#...... as soon as I copy the project to a folder that doesn't contain 'c#' it works. This clearly causes some parsing in the background to fail.

mnemonic
  • 692
  • 1
  • 9
  • 18

12 Answers12

49

I faced the same issue and looks like when I created a ContentPage in VS its still pointing to Xamarin Forms. After changing namespace to MAUI, I updated the Build Action(RightClick on Xaml Page>>Properties>>BuildAction) of XAML Page to MauiXaml and it worked for me.

Geethu Vinod
  • 506
  • 4
  • 4
  • 6
    Also make sure to remove anything listed for 'Custom Tool and Custom Tool Namespace' – ben Jul 05 '21 at 17:51
  • 3
    Edit queue is full for this answer, but take in consideration that now it's possible to add a new ContentPage for MAUI within the Add > New Item Menu. Just select under Visual C# Items > .NET MAUI > .NET MAUI ContentPage (XAML). That will also geerate the C# file with template applied. – Juan Ignacio Avendaño Huergo Feb 20 '22 at 15:10
28
  1. Close VS2022
  2. Open VS2022
  3. Open project with menu VS2022(File - Open - Project...)
8

What caused it for me was that I had renamed the xaml and xaml.cs file something else but I hadn't updated it in the ContentPage node in the xaml under x:Class

nmase88
  • 123
  • 1
  • 4
5

The same error popped in for me being an absolute beginner and missing the ending '>' in the XAML file. So, It could also be XAML errors, which leads to this error.

Monasha
  • 882
  • 1
  • 12
  • 17
2

The path to the project I created is c:\develop\c#...... as soon as I copy the project to a folder that doesn't contain 'c#' it works. This clearly causes some parsing in the background to fail.

mnemonic
  • 692
  • 1
  • 9
  • 18
2

Make sure you select a .Net MAUI Content Page and not a Content Page

Maui ContentPage

Astrophage
  • 1,231
  • 1
  • 12
  • 38
1

I'm using VS 2022 Preview 17.4.0 Preview 1.0, I don't know why but when you create a new Content Page it creates with the wrong namespace. take a look in the C# file and fix the namespace. It worked for me.

Gerson C Filho
  • 196
  • 1
  • 11
1

Just run visual studio with "run as administrator" and everything is done

Amir Kaftari
  • 1,305
  • 14
  • 13
0

A very simple answer but has happened to me a few times.

Make sure you are using the preview version of VS 2022. It is very easy to accidently open up any other version of VS, which will cause the error to occur.

Knight0fDragon
  • 16,609
  • 2
  • 23
  • 44
  • It happens with VS 2022 preview too. – Shidouuu Jan 29 '22 at 17:00
  • Not sure why you downvoted it since you either didn't open it in preview, or your error is just a different one. Create a new project in MAUI, then open it up in VS 2022 standard, and you will see this error. – Knight0fDragon Jan 29 '22 at 17:04
  • I know I am in VS 2022 preview since it is the only version of VS I have installed... and I can clearly see the PRE icon on my taskbar. – Shidouuu Jan 29 '22 at 17:10
  • 1
    if you only have 2022 preview installed then obviously this answer does not apply to you, so why are you even responding on it and wasting everybodies time. – Knight0fDragon Jan 29 '22 at 17:24
  • Because it's not useful. The only version of VS you can even create a MAUI project in (currently) is VS 2022 preview. – Shidouuu Jan 29 '22 at 17:27
  • Well, if you had more than 1 version of VS installed, you would have understood that the project opens in the release version of VS 2022 by default giving you this error. Try reading answers that actually apply to your situation, you may get better results. – Knight0fDragon Jan 29 '22 at 17:54
0

I have found a workaround for this problem. I am a newbie to c# and especially to .net Maui therefore, my apologies if I misinterpreted things differently.

First things first The error is about the context that the InitializeComponent() resides in. Context is nothing but the nuget package dependency that the file is looking for.

To change the context

  1. Open the .cs file and at the top of the editor click the navigation bar as shown in the Image
  2. Change the context to Windows specific dependency from the list.

And also the other workaround would be to change the build action of the xaml file to MauiXaml as others mentioned

0

I am using preview version of 17.5 VS2022, I add to do below changes to run the app after adding new page.

*.Xmal Build Action -> BundleResource

*.Xmal.cs Build Action -> Compile

My VS Version

New MAUI XAML Page

Xmal Build -> BundleResource

Xmal.cs Build -> Compile

gaurav
  • 75
  • 1
  • 3
0

For me the problem was that I've probably accidentally pressed "Exclude From Project" on MauiProgram.cs file. Hence the error. Don't know how it could've happened. Probably clicked on the file when was deleting files that lies beside. I've spend some hours looking for the reason for this error. It was my first ever VS Code, C#/.NET MAUI project.

Just have been following the tutorial. Made all the input myself, never copypasted. And somewhere on the Step 4 it stopped working. So I've thought that maybe I made a typo somewhere.

Downloaded the final code from the tutorial and started comparing files. After sometime, I've noticed the difference in .csproj file. Bingo! The MainPage files supposed to be deleted, not just excluded from project. And MauiProgram.cs was excluded by mistake. At first I didn't even know how this lines got in the file. Than I've learned about "Exclude From Project". After including MauiProgram.cs back in the project it started working as expected.

    <ItemGroup>
      <Compile Remove="MainPage.xaml.cs" />
      <Compile Remove="MauiProgram.cs" />
    </ItemGroup>

    <ItemGroup>
      <MauiXaml Remove="MainPage.xaml" />
    </ItemGroup>

Tutorial

edvard_munch
  • 266
  • 1
  • 5
  • 17