XAML 新的.Net MAUI应用程序项目引发“名称”InitializeComponent“在当前上下文中不存在”生成错误

lndjwyie  于 2022-12-07  发布在  .NET
关注(0)|答案(9)|浏览(561)

我已经尝试开始使用.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创建新的.NET MAUI应用程序时(运行在Windows 10家庭版20 H2上),我收到“名称'InitializeComponent'不存在于目前内容中”建置错误。它也找不到表单上任何控件的指涉,例如当前上下文中不存在名称“CounterLabel”
    我已经尝试了几乎所有的东西在这篇文章The name 'InitializeComponent' does not exist in the current context,其中包含的建议,如添加和删除文件,作出改变和改变他们回来...基本上一切,除了扔一分钱在许愿井。
    我发现一个常见的错误是名称空间不匹配,但下面的内容表明名称空间是正确的:
    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...
        }
    }
}

任何帮助将不胜感激!

  • ---===更新===---*
  • 我创建的项目的路径是c:\develop\c#......只要我将项目复制到不包含“c#”的文件夹中,它就可以工作了。这显然会导致后台的某些解析失败。*
piztneat

piztneat1#

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

quhf5bfb

quhf5bfb2#

1.关闭VS 2022
1.打开VS 2022
1.使用菜单VS 2022打开项目(文件-打开-项目...)

1aaf6o9v

1aaf6o9v3#

我之所以会出现这种情况,是因为我将xaml和xaml.cs文件重命名为其他名称,但没有在xaml的x:Class下的ContentPage节点中更新它

mrfwxfqh

mrfwxfqh4#

同样的错误弹出为我是一个绝对的初学者和失踪的结束'〉'在XAML文件。所以,它可能也是XAML错误,这导致了这个错误。

mzmfm0qo

mzmfm0qo5#

我创建的项目的路径是c:\develop\c#......只要我将项目复制到不包含“c#”的文件夹中,它就可以工作了。这显然会导致后台的一些解析失败。

ioekq8ef

ioekq8ef6#

一个很简单的答案,但在我身上发生过几次。
确保您使用的是VS 2022的预览版本,非常容易不小心打开任何其他版本的VS,这将导致错误的发生。

iyzzxitl

iyzzxitl7#

我已经找到了解决这个问题的方法。我是C#的新手,尤其是毛伊岛的新手,因此,如果我有不同的误解,我很抱歉。
第一件事第一件事错误是关于InitializeComponent()所在的上下文。上下文只是文件正在寻找的nuget包依赖项。
更改上下文
1.打开.cs文件,并在编辑器顶部单击导航栏,如Image
1.将上下文更改为列表中的Windows特定依赖项。
另一种解决方法是将xaml文件的构建操作更改为MauiXaml,正如其他人提到的那样

nwo49xxi

nwo49xxi8#

我正在使用VS 2022 Preview 17.4.0 Preview 1.0,我不知道为什么,但当你创建一个新的内容页面,它创建了错误的命名空间。看看C#文件,并修复命名空间。它为我工作。

pvabu6sv

pvabu6sv9#

我使用的预览版本17.5 VS 2022,我添加做下面的变化,以运行应用程序后,添加新的页面。

  • .Xmal生成操作-〉捆绑资源
  • .Xmal.cs生成操作-〉编译

相关问题