错误 CS0103 在项目从 xamarin.forms 升级到 .NET MAUI 的当前上下文中不存在名称“InitializeComponent”

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

我正在将 Xamarin.Forms 项目更新到 .NET MAUI 并遇到错误

错误 CS0103:名称“InitializeComponent”在当前上下文中不存在。

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

我注意到主题 MAUI 项目,无法添加新页面 和主题 .NET MAUI:当前上下文中不存在名称“InitializeComponent” 讨论此主题,但按照那里提供的响应,没有一个解决我的问题,我觉得很奇怪。

我通过以下方式创建了一个新的毛伊岛内容页面。 enter image description here

文件xaml的结构如下。

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="Ren9ve.ERP.Mobile.NewPage1"
             Title="NewPage1">
    <VerticalStackLayout>
        <Label 
            Text="Welcome to .NET MAUI!"
            VerticalOptions="Center" 
            HorizontalOptions="Center" />
    </VerticalStackLayout>
</ContentPage>

还有 xaml.cs 文件。

using Microsoft.Maui.Controls;

namespace Ren9ve.ERP.Mobile
{
    public partial class NewPage1 : ContentPage
    {
        public NewPage1()
        {
            //Here is where the reported error occurs.
            InitializeComponent();
        }
    }
}

在.csproj文件中,设置如下。

  <ItemGroup>
    <MauiXaml Update="NewPage1.xaml">
      <Generator>MSBuild:Compile</Generator>
    </MauiXaml>
  </ItemGroup>

如果我在同一解决方案中创建一个新的 Maui 项目并创建一个相同的文件,则它可以正常工作。该错误仅发生在我更新到毛伊岛的项目中。该错误出现在所有 XAML 文件中,但出于测试目的,我注释掉了所有 CS0103 错误,只留下新文件中的错误。

我使用的是VS2022 17.8.4

  1. 我已将 C# 文件的构建操作设置为 C# 编译器
  2. 我已经多次清理和重建我的项目并尝试过 删除 bin 和 obj 文件夹,但似乎没有任何作用
  3. 我尝试在另一台机器上进行测试。
  4. 我将 csproj 与毛伊岛新项目中的 csproj 进行了比较,但没有发现任何可能导致问题的内容。
  5. 我尝试实施解决方案MAUI项目,无法添加新页面,但它也不起作用。
c# xaml xamarin maui .net-8.0
1个回答
0
投票

我是在毛伊岛工作的新手,因此我经常遇到这个错误......以至于我找到了这个问题的答案......但你不会喜欢它。 :(

95% 的情况下,后面的代码向我抛出该错误的原因是 XAML 文件中存在某些错误。不管它是什么,如果那里有错误,那么我会在 .cs 文件中收到该错误。检查 xaml 中的拼写错误或简单的糟糕 xmll 可以在 95% 的情况下修复此问题。

另外 5% 的情况纯粹是运气不好。这是完全相同的问题,只是错误发生在两到四个不同的脚本上,而实际的拼写错误发生在与所有脚本完全无关的脚本中。我碰巧上次处理了 File5.xaml,所以当我在文件 1 .. 4 中遇到所有这些错误时,我刚刚修复了 File5 中的拼写错误,瞧,其他 4 个文件中的错误就消失了...

所以,是的,问题肯定是 XAML 中的错误,但只有 95% 的机会该错误出现在 VS 告诉您的地方......

祝你好运

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