XAML .NET MAUI应用程序:未找到类型“maui:MauiWinUIApplication”,无法生成.NET MAUI应用程序

tuwxkamq  于 11个月前  发布在  .NET
关注(0)|答案(2)|浏览(447)

我在构建.NET MAUI应用程序时遇到问题。当我构建应用程序时,我收到以下错误消息:

  • 严重性代码描述项目文件行抑制状态错误XLS 0414找不到类型“maui:MauiWinUIApplication”。请验证没有丢失程序集引用并且已生成所有引用的程序集。*

Screenshot: 'maui:MauiWinUIApplication' was not found
还有这个

  • 严重性代码描述项目文件行抑制状态错误CS1061“App”不包含“InitializeComponent”的定义,并且找不到接受类型“App”的第一个参数的可访问扩展方法“InitializeComponent”(您是否缺少using指令或程序集引用?)Qit.QtimeUniversal.MAUI(net 7. 0-windows10. 0. 22621. 0)**

问题出在Windows平台的App.xaml(和App.xaml.cs)文件中,该文件位于Targets/.../Platforms/Windows文件夹中:
Screenshot: App.xaml
我也得到这个错误:

*严重性代码描述项目文件行抑制状态错误WMC 9999根级别的数据无效。行1,位置2。

MSB 4018“XamlCTask”任务意外失败。System.Xml。XmlException:根级别的数据无效。第1行,位置2。
在此文件中:
. nuget\packages\microsoft.windows.sdk\1.2.221209.1\buildTransitive\Microsoft.UI.Xaml.Markup.Marker.interop.targets文件:
我在这里看到一个类似的问题:
https://stackoverflow.com/questions/77335022/the-type-or-namespace-name-mauiwinuiapplication-does-not-exist-in-the-namespac
到目前为止,我所尝试的:

  • 我已经删除了解决方案中所有项目的bin和obj文件夹,然后重新构建解决方案。但这并没有解决问题。
  • 我已经检查了app.xaml.cs文件所在项目的.csproj文件是否已损坏。但我找不到任何东西。
  • app.xaml文件的build action被设置为MauiXaml。我已经将其更改为build action:page,但这是不正确的,并没有解决问题。如果您在Visual Studio中创建新的.NET MAUI应用程序项目,则build action默认为MauiXaml。

这可能与引用程序集不正确有关。但是它曾经工作得很好,现在突然无法构建。有人知道这些问题的根本原因是什么吗?

4ngedf3f

4ngedf3f1#

我想我找到了答案:https://github.com/dotnet/maui/issues/5785
我已经见过几次了,我认为这是Visual Studio中需要改进的地方。注意右上角有一个提示符,现在写着VisualLogger(net6.0-android),这意味着你的编辑器现在显示的代码就像在Android上编译的一样。因此,它不会找到Windows特定的东西。
将该屏幕切换到Windows,它应该显示正常。
Screenshot
这解决了这个问题:
严重性代码描述项目文件行抑制状态错误XLS 0414找不到类型“maui:MauiWinUIApplication”。请验证您没有丢失程序集引用,并且已生成所有引用的程序集。Qit.QtimeUniversal.MAUI C:\Dev\QIT\QFS\QtimeMobileMAUI\Qit. QtimeUniversalSolution\Qit. QtimeUniversalSolution\Platforms\Windows\App.xaml 1
现在我可以在Windows上再次构建应用程序了。不过在Android上我仍然会收到一个构建错误。

ttvkxqim

ttvkxqim2#

我将我的Maui项目从AppNameA重命名为AppNameB。在一些手动命名空间重命名并使用VS中的“Sync WinUI”功能后,我发现下面的文件将其命名空间的WinUI部分重命名为,这导致了“未找到类型'maui:MauiWinUIApplication'”错误。
文件名:

Platforms\Windows\App.xaml.cs

字符串
老佩斯:

namespace AppNameA.WinUI


新的空间需要:

namespace AppNameB.WinUI

相关问题