MAUI 项目,无法添加新页面

Posted

技术标签:

【中文标题】MAUI 项目,无法添加新页面【英文标题】:MAUI project, cannot add a new Page 【发布时间】:2021-10-08 21:17:42 【问题描述】:

我正在试用 MAUI,但遇到了一个奇怪的错误。它不会让我添加一个新页面,每次我尝试这样做时,构造函数中的InitializeComponent 都会给我一个错误:

当前上下文中不存在名称“InitializeComponent”

我在 C# 代码和 XAML 代码中添加了Microsoft.Maui.Controls

xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"

有人知道在这里做什么吗?

【问题讨论】:

你在哪里添加页面?在子文件夹或任何东西中?另外你使用的是什么 VS 和 .NET 6 版本? 你做了哪些步骤来创建页面?假设这与 Xamarin Forms 的行为相同,通常该错误意味着 xaml 与 .xaml.cs 不在同一个命名空间中。在 xaml 的开头显示 delation 行。尤其是类属性,以及其中使用的任何命名空间声明。更罕见的可能性是这两个源文件之一的构建设置存在问题。 另外,添加页面后,您是否构建了项目?如果不是,它只是一个 Intellisense 故障。成功构建后将消失。注释掉其他地方的任何不完整代码,如果这会干扰成功构建。 我正在使用 Visual Studio 2022 预览版和 .NET 6.0.100-preview-6-21355.2。我试图构建解决方案,但我仍然遇到同样的错误。我将页面添加到与 App.cs 和 MainPage.cs 相同的级别。我使用 xamarin.forms 创建新页面时执行的步骤相同,即右键单击 -> 添加新项目 -> 内容页面。 这是 xaml 开头的变格行:code schemas.microsoft.com/dotnet/2021/maui" xmlns:x ="schemas.microsoft.com/winfx/2009/xaml" x:Class="MealTime.Page1"> code 【参考方案1】:

将新的 MAUI 页面添加到项目后,我遇到了同样的错误。解决方案是从.csproj 文件中删除以下行:

<ItemGroup>
  <MauiXaml Remove="Pages\Page1.xaml" />
</ItemGroup>

<ItemGroup>
  <EmbeddedResource Include="Pages\Page1.xaml">
    <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
  </EmbeddedResource>
</ItemGroup>

然后删除Page1.xaml.cs文件中的InitializeComponent();语句,重建项目,最后将InitializeComponent();添加回Page1.xaml.cs

问题是 Maui SourceGen 无法为 Page1.xaml.cs 文件生成 Page1.xaml.sg.cs 文件。

让我知道此解决方案是否适合您。

【讨论】:

成功了!谢谢!但是现在 page.xaml 和 page.xaml.cs 没有合并到解决方案中,但我想这可能只是一个错误 我无法导航到 newley 添加的页面 这可能是它们没有合并的错误,这是真的。 @CodeBuddyBenny 关于导航。我需要查看代码并自行尝试。您能否使用代码示例创建一个新问题并与我分享链接。我去看看。 在 VS 17.1.0 中,从 .csproj 文件中删除指定的行后,它对我有用。不需要删除和读取InitializeComponent(); @CodeBuddyBenny:对我来说也是一样,但是当我卸载并重新加载项目时,文件像往常一样嵌套。【参考方案2】:

这已经得到解答,但在 Microsoft Visual Studio 社区中找到了这个。

2022 (64-bit) - Preview
Version 17.1.0 Preview 1.1

。我添加了这个

.NET MAUI Project and Item Templates from Visual Studio Marketplace

https://marketplace.visualstudio.com/items?itemName=egvijayanand.maui-item-templates

然后像正常添加....并选择 MAUI

【讨论】:

以上是关于MAUI 项目,无法添加新页面的主要内容,如果未能解决你的问题,请参考以下文章

(01).NET MAUI实战 建项目

[MAUI 项目实战] 手势控制音乐播放器:圆形进度条

将Abp移植进.NET MAUI项目:配置与基类编写

助力 .NET MAUI Community Toolkit

将Abp移植进.NET MAUI项目:搭建项目

在 Visual Studio 2022 和 MAUI 中无法指定 iOS Bundle Signing 和 Provisioning