MAUI项目,无法添加新页面

问题描述 投票:0回答:6

我正在尝试 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"

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

Error message

c# visual-studio xamarin maui
6个回答
14
投票

将新的 MAUI 页面添加到项目后,我遇到了同样的错误。解决方案是从

.csproj
文件中删除以下行:

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

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

然后删除

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

问题是 Maui SourceGen 无法为

Page1.xaml.sg.cs
文件生成
Page1.xaml.cs
文件。

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


5
投票

这已经得到解答,但发现了这个。在 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

enter image description here


1
投票

除了上面的答案。 如果您仍然遇到问题(应用程序在访问该页面时崩溃并且没有其他信息),请尝试以下操作:

namespace DeviceFinder;

public partial class AppShell : Shell
{
    public AppShell()
    {
        InitializeComponent();

        Routing.RegisterRoute(nameof(DetailsPage), typeof(DetailsPage));
        Routing.RegisterRoute(nameof(SettingsPage), typeof(SettingsPage));
        // Specifically, this above line you have to manually add in ^^^
    }
}

在 AppShell.XAML 的代码隐藏中,您必须注册路由。 谁知道为什么......但它有效。


0
投票

对我来说,它创建了 2 个文件:

NewPage1.cs
NewPage1.xaml

我需要将

NewPage1.cs
重命名为
NewPage1.xaml.cs

我生命中的两个小时我永远不会再回来了。


0
投票

对我来说,.cs 文件和 xaml.cs 文件中的命名空间不匹配。

设置命名空间以匹配修复它。这是固定的示例:

// from the cs xaml.cs file:

namespace MauiApp2;

public partial class EventDetailsPage : ContentPage
...
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage
    x:Class=" MauiApp2.EventDetailsPage"
...

x:Class 设置不正确,修复后错误已解决。


0
投票

我在 AppShell 中也遇到同样的问题

错误文本是 初始化组件

无法打开文件 我们无法打开文件 我们无法打开文件 AppShell.xaml.sg.cs 它可能已被移动、重命名或删除

© www.soinside.com 2019 - 2024. All rights reserved.