Visual Studio 2022/.NET 7中MAUI模板无法运行且大量引用报错
解决MAUI/.NET7项目中Microsoft.Extensions及AndroidX引用错误的方案
1. 检查项目文件(.csproj)配置
打开项目的.csproj文件,确认核心配置是否正确:
- 确保
<TargetFramework>包含完整的.NET7 MAUI目标框架:<TargetFrameworks>net7.0-android;net7.0-ios;net7.0-maccatalyst;net7.0-windows10.0.19041.0</TargetFrameworks> - 确认MAUI SDK启用配置存在:
<UseMaui>true</UseMaui> <SingleProject>true</SingleProject> - 手动添加缺失的Microsoft.Extensions相关NuGet包引用:
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="7.0.0" /> <PackageReference Include="Microsoft.Extensions.Logging" Version="7.0.0" />
2. 修复Android平台依赖问题
针对AppCompatActivity的引用错误:
- 打开NuGet包管理器,搜索并安装匹配.NET7版本的
Xamarin.AndroidX.AppCompat包(推荐1.6.x及以上版本) - 右键项目选择清理,删除bin/obj目录后重新生成项目
- 修正
MainActivity.cs的继承关系,MAUI Android主活动应继承自MauiAppCompatActivity:using Android.App; using Android.Content.PM; using Android.OS; namespace YourAppNamespace.Platforms.Android; [Activity(Theme = "@style/Maui.SplashTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize | ConfigChanges.Density)] public class MainActivity : MauiAppCompatActivity { protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); } }
3. 重置.NET SDK缓存
执行命令清理NuGet缓存,解决包损坏问题:
dotnet nuget locals all --clear
随后重新还原项目依赖:
dotnet restore
4. 验证VS安装组件
打开VS安装器,确认已安装以下核心组件:
- .NET 7.0正式版SDK
- 移动开发.NET工作负载(包含MAUI工具链、Android SDK)
- Android API 33及以上版本的SDK
5. 空白项目测试排查
如果以上步骤无效,创建全新的空白.NET7 MAUI项目:
- 若空白项目可正常编译,说明原项目配置存在异常,逐步迁移代码到新项目
- 若空白项目仍报错,彻底卸载VS 2022和.NET7 SDK后,重新安装最新正式版
内容的提问来源于stack exchange,提问作者ZetaF
相关产品推荐
相关产品推荐

