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
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 项目,无法添加新页面的主要内容,如果未能解决你的问题,请参考以下文章
助力 .NET MAUI Community Toolkit
在 Visual Studio 2022 和 MAUI 中无法指定 iOS Bundle Signing 和 Provisioning