我正在将 Xamarin.Forms 项目更新到 .NET MAUI 并遇到错误
错误 CS0103:名称“InitializeComponent”在当前上下文中不存在。
问题似乎是 Maui SourceGen 无法为 xaml.cs 文件生成 xaml.sg.cs 文件。
我注意到主题 MAUI 项目,无法添加新页面 和主题 .NET MAUI:当前上下文中不存在名称“InitializeComponent” 讨论此主题,但按照那里提供的响应,没有一个解决我的问题,我觉得很奇怪。
文件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
我是在毛伊岛工作的新手,因此我经常遇到这个错误......以至于我找到了这个问题的答案......但你不会喜欢它。 :(
95% 的情况下,后面的代码向我抛出该错误的原因是 XAML 文件中存在某些错误。不管它是什么,如果那里有错误,那么我会在 .cs 文件中收到该错误。检查 xaml 中的拼写错误或简单的糟糕 xmll 可以在 95% 的情况下修复此问题。
另外 5% 的情况纯粹是运气不好。这是完全相同的问题,只是错误发生在两到四个不同的脚本上,而实际的拼写错误发生在与所有脚本完全无关的脚本中。我碰巧上次处理了 File5.xaml,所以当我在文件 1 .. 4 中遇到所有这些错误时,我刚刚修复了 File5 中的拼写错误,瞧,其他 4 个文件中的错误就消失了...
所以,是的,问题肯定是 XAML 中的错误,但只有 95% 的机会该错误出现在 VS 告诉您的地方......
祝你好运