我已经尝试开始使用.Net MAUI,并按照中描述的步骤设置了开发环境:
- https://learn.microsoft.com/en-us/dotnet/maui/get-started/first-app?pivots=windows
- https://learn.microsoft.com/en-us/windows/apps/project-reunion/set-up-your-development-environment#required-workloads-and-components
- 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#”的文件夹中,它就可以工作了。这显然会导致后台的某些解析失败。*
9条答案
按热度按时间piztneat1#
我遇到了同样的问题,看起来当我在VS中创建一个ContentPage时,它仍然指向Xamarin Forms。在将名称空间更改为MAUI后,我将XAML页面的构建操作(右键单击Xaml页面〉〉属性〉〉构建操作)更新为MauiXaml,它对我很有效。
quhf5bfb2#
1.关闭VS 2022
1.打开VS 2022
1.使用菜单VS 2022打开项目(文件-打开-项目...)
1aaf6o9v3#
我之所以会出现这种情况,是因为我将xaml和xaml.cs文件重命名为其他名称,但没有在xaml的x:Class下的ContentPage节点中更新它
mrfwxfqh4#
同样的错误弹出为我是一个绝对的初学者和失踪的结束'〉'在XAML文件。所以,它可能也是XAML错误,这导致了这个错误。
mzmfm0qo5#
我创建的项目的路径是c:\develop\c#......只要我将项目复制到不包含“c#”的文件夹中,它就可以工作了。这显然会导致后台的一些解析失败。
ioekq8ef6#
一个很简单的答案,但在我身上发生过几次。
确保您使用的是VS 2022的预览版本,非常容易不小心打开任何其他版本的VS,这将导致错误的发生。
iyzzxitl7#
我已经找到了解决这个问题的方法。我是C#的新手,尤其是毛伊岛的新手,因此,如果我有不同的误解,我很抱歉。
第一件事第一件事错误是关于InitializeComponent()所在的上下文。上下文只是文件正在寻找的nuget包依赖项。
更改上下文
1.打开.cs文件,并在编辑器顶部单击导航栏,如Image
1.将上下文更改为列表中的Windows特定依赖项。
另一种解决方法是将xaml文件的构建操作更改为MauiXaml,正如其他人提到的那样
nwo49xxi8#
我正在使用VS 2022 Preview 17.4.0 Preview 1.0,我不知道为什么,但当你创建一个新的内容页面,它创建了错误的命名空间。看看C#文件,并修复命名空间。它为我工作。
pvabu6sv9#
我使用的预览版本17.5 VS 2022,我添加做下面的变化,以运行应用程序后,添加新的页面。