新的.Net MAUI应用程序项目会在构建时抛出“当前上下文中不存在'InitializeComponent'名称”的构建错误。

18 浏览
0 Comments

新的.Net MAUI应用程序项目会在构建时抛出“当前上下文中不存在'InitializeComponent'名称”的构建错误。

我尝试着开始使用.Net MAUI,按照以下步骤设置了开发环境:

  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

我还运行了\'maui-check\'CLI工具,一切都没问题,但是当我使用Visual Studio 2019 v16.11.0 Preview 2.0(运行在Windows 10 Home 20H2上)创建一个新的.NET MAUI应用程序时,我会得到“在当前环境中,未找到\'InitializeComponent\'名称”的编译错误。它还无法找到对表单上任何控件的引用,比如“在当前环境中未找到\'CounterLabel\'名称”

我尝试了这篇文章中的几乎所有方法The name \'InitializeComponent\' does not exist in the current context,其中包括添加和删除文件,做出更改并将其改回来...基本上除了往许愿井里扔一分钱之外什么都试了。

我发现一个常见的错误是命名空间不匹配,但是这里显示命名空间是正确的:

App.xaml:

    ...

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

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#\'的文件夹中,它就会工作。这显然会导致后台的某些解析失败。

admin 更改状态以发布 2023年5月23日
0
0 Comments

    \n

  1. 关闭 VS2022
  2. \n

  3. 打开 VS2022
  4. \n

  5. 使用 VS2022 菜单(文件 - 打开 - 项目...)打开项目
  6. \n

0
0 Comments

我遇到了同样的问题,看起来当我在VS中创建ContentPage时,它仍然指向Xamarin Forms。在将命名空间更改为MAUI之后,我更新了XAML页面的构建操作(右击Xaml页面>>属性>>构建操作),这对我有效。

0