清理电脑导致nuget没有正常还原报错Microsoft.PackageDependencyResolution

严重性 代码 说明 项目 文件 行 禁止显示状态 错误 NETSDK1005 资产文件“F:\Merchant\project\todotask\TodoReminderApp\TodoReminderApp\obj\project.assets.json”没有“net8.0-windows10.0.19041.0”的目标。确保已运行还原,且“net8.0-windows10.0.19041.0”已包含在项目的 TargetFrameworks 中。 TodoReminderApp C:\Program Files\dotnet\sdk\8.0.200\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets 266 错误 XA1018 Specified AndroidManifest file does not exist: F:\Merchant\project\todotask\TodoReminderApp\TodoReminderApp\AndroidManifest.xml. TodoReminderApp C:\Program Files\dotnet\packs\Microsoft.Android.Sdk.Windows\34.0.52\tools\Xamarin.Android.Common.targets 596

严重性	代码	说明	项目	文件	行	禁止显示状态
错误	NETSDK1005	资产文件“F:\Merchant\project\todotask\TodoReminderApp\TodoReminderApp\obj\project.assets.json”没有“net8.0-windows10.0.19041.0”的目标。确保已运行还原,且“net8.0-windows10.0.19041.0”已包含在项目的 TargetFrameworks 中。	TodoReminderApp	C:\Program Files\dotnet\sdk\8.0.200\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets	266	
错误	XA1018	Specified AndroidManifest file does not exist: F:\Merchant\project\todotask\TodoReminderApp\TodoReminderApp\AndroidManifest.xml.	TodoReminderApp	C:\Program Files\dotnet\packs\Microsoft.Android.Sdk.Windows\34.0.52\tools\Xamarin.Android.Common.targets	596	

严重性	代码	说明	项目	文件	行	禁止显示状态
错误	NETSDK1005	资产文件“F:\Merchant\project\todotask\TodoReminderApp\TodoReminderApp\obj\project.assets.json”没有“net8.0-windows10.0.19041.0”的目标。确保已运行还原,且“net8.0-windows10.0.19041.0”已包含在项目的 TargetFrameworks 中。	TodoReminderApp	C:\Program Files\dotnet\sdk\8.0.200\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets	266	
错误	NETSDK1005	资产文件“F:\Merchant\project\todotask\TodoReminderApp\TodoReminderApp\obj\project.assets.json”没有“net8.0-ios”的目标。确保已运行还原,且“net8.0-ios”已包含在项目的 TargetFrameworks 中。	TodoReminderApp	C:\Program Files\dotnet\sdk\8.0.200\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets	266	
错误	NETSDK1005	资产文件“F:\Merchant\project\todotask\TodoReminderApp\TodoReminderApp\obj\project.assets.json”没有“net8.0-maccatalyst”的目标。确保已运行还原,且“net8.0-maccatalyst”已包含在项目的 TargetFrameworks 中。	TodoReminderApp	C:\Program Files\dotnet\sdk\8.0.200\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets	266	
错误	NETSDK1005	资产文件“F:\Merchant\project\todotask\TodoReminderApp\TodoReminderApp\obj\project.assets.json”没有“net8.0-android”的目标。确保已运行还原,且“net8.0-android”已包含在项目的 TargetFrameworks 中。	TodoReminderApp	C:\Program Files\dotnet\sdk\8.0.200\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets	266	

这个错误通常是由于项目缺少 Android 目标框架配置或 NuGet 包未正确还原导致的。解决步骤如下:

1. 检查项目目标框架配置

确保项目文件(.csproj)中包含 net8.0-android 目标框架:

  1. 在解决方案资源管理器中,右键项目 → 编辑项目文件(或手动找到 .csproj 文件)。
  2. 检查 <TargetFrameworks> 节点是否包含 net8.0-android
    <!-- 正确配置示例 -->
    <TargetFrameworks>net8.0-android;net8.0-ios</TargetFrameworks>
    <!-- 或仅针对 Android -->
    <TargetFramework>net8.0-android</TargetFramework>
    
  3. 若缺少,添加 net8.0-android 并保存文件。

2. 重新还原 NuGet 包

“project.assets.json” 文件由 NuGet 还原生成,缺少目标框架通常是还原不完整导致的:

  1. 通过 Visual Studio 还原

    • 右键解决方案 → 还原 NuGet 包
    • 或在菜单栏选择 工具 → NuGet 包管理器 → 包管理器控制台,执行:
      dotnet restore
      
  2. 通过命令行还原(在项目根目录执行):

    # 清理旧的构建文件
    dotnet clean
    
    # 重新还原依赖
    dotnet restore
    

3. 检查 .NET MAUI 工作负载是否安装

net8.0-android 目标框架无法识别,可能是缺少对应的 .NET MAUI 工作负载:

  1. 打开 Visual Studio 安装程序 → 选择你的 VS 版本 → 点击 修改
  2. 工作负载 选项卡中,确保勾选:
    • .NET 多平台应用 UI 开发(MAUI 核心工作负载)。
    • 展开该工作负载,确认勾选 Android 平台开发(包含 net8.0-android 支持)。
  3. 点击 修改 安装缺失的组件。

4. 清理并重建项目

还原和配置后,清理旧的构建缓存并重建:

  1. 右键项目 → 清理
  2. 右键项目 → 重建
  3. 若仍报错,删除项目目录下的 binobj 文件夹,再重新生成。

总结

核心问题是项目未配置 net8.0-android 目标框架或 NuGet 还原不完整,按以下顺序操作即可解决:

  1. 确保 .csproj 中包含 net8.0-android 目标框架。
  2. 执行 dotnet restore 重新还原依赖。
  3. 检查并安装 .NET MAUI Android 工作负载。
  4. 清理缓存并重建项目。

windows还原

安卓端也报错error APT2144: invalid file path '...\res\platforms\android\androidmanifest.xml'

严重性 代码 说明 项目 文件 行 禁止显示状态 错误 IDE1100 读取源文件“F:\Merchant\project\todotask\TodoReminderApp\TodoReminderApp\obj\Debug\net8.0-android.NETCoreApp,Version=v8.0.AssemblyAttributes.cs”中的内容时出错 -“未能找到文件“F:\Merchant\project\todotask\TodoReminderApp\TodoReminderApp\obj\Debug\net8.0-android.NETCoreApp,Version=v8.0.AssemblyAttributes.cs”。”。 TodoReminderApp (net8.0-android) F:\Merchant\project\todotask\TodoReminderApp\TodoReminderApp\obj\Debug\net8.0-android.NETCoreApp,Version=v8.0.AssemblyAttributes.cs 1 活动 错误 APT2144 invalid file path 'F:\Merchant\project\todotask\TodoReminderApp\TodoReminderApp\obj\Debug\net8.0-android\res\platforms\android\androidmanifest.xml'. TodoReminderApp C:\Program Files\dotnet\packs\Microsoft.Android.Sdk.Windows\34.0.52\tools\Xamarin.Android.Aapt2.targets 123

严重性	代码	说明	项目	文件	行	禁止显示状态
错误	IDE1100	读取源文件“F:\Merchant\project\todotask\TodoReminderApp\TodoReminderApp\obj\Debug\net8.0-android\.NETCoreApp,Version=v8.0.AssemblyAttributes.cs”中的内容时出错 -“未能找到文件“F:\Merchant\project\todotask\TodoReminderApp\TodoReminderApp\obj\Debug\net8.0-android\.NETCoreApp,Version=v8.0.AssemblyAttributes.cs”。”。	TodoReminderApp (net8.0-android)	F:\Merchant\project\todotask\TodoReminderApp\TodoReminderApp\obj\Debug\net8.0-android\.NETCoreApp,Version=v8.0.AssemblyAttributes.cs	1	活动
错误	APT2144	invalid file path 'F:\Merchant\project\todotask\TodoReminderApp\TodoReminderApp\obj\Debug\net8.0-android\res\platforms\android\androidmanifest.xml'.
	TodoReminderApp	C:\Program Files\dotnet\packs\Microsoft.Android.Sdk.Windows\34.0.52\tools\Xamarin.Android.Aapt2.targets	123	

已经删除bin和obj目录然后清理再构建
(base) PM> dotnet publish -f:net8.0-android -c Release
閫傜敤浜?.NET MSBuild 鐗堟湰 17.9.4+90725d08d
  姝e湪纭畾瑕佽繕鍘熺殑椤圭洰鈥?
  宸茶繕鍘?F:\Merchant\project\todotask\TodoReminderApp\TodoReminderApp\TodoReminderApp.csproj (鐢ㄦ椂 15.33 sec)銆?
C:\Program Files\dotnet\packs\Microsoft.Android.Sdk.Windows\34.0.52\tools\Xamarin.Android.Aapt2.targets(123,3): error APT2144: invalid file path 'F:\Merchant\project\todotask\TodoReminderApp\TodoReminderApp\obj\Release\net8.0-android\res\platforms\android\androidmanifest.xml'. [F:\Merchant\project\todotask\TodoReminderApp\TodoReminderApp\TodoReminderApp.csproj::TargetFramework=net8.0-android]
C:\Program Files\dotnet\packs\Microsoft.Android.Sdk.Windows\34.0.52\tools\Xamarin.Android.Aapt2.targets(123,3): error APT2144:  [F:\Merchant\project\todotask\TodoReminderApp\TodoReminderApp\TodoReminderApp.csproj::TargetFramework=net8.0-android]还是报错,什么问题

这类 APT2144 错误通常出现在 Android 构建过程中,原因是 资源文件路径不合法或被错误生成。在你的项目中,它似乎是自动在 obj/Release/net8.0-android/res/platforms/android/androidmanifest.xml 下生成了一个无效的路径。

资源文件路径不合法或被错误生成 androidmanifest生成操作 只能是无 不能乱改