You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 9项目构建遇NETSDK1064错误,多种尝试无效求解决方案

.NET 9 构建时出现 NETSDK1064 包未找到错误的调试与修复方法

问题描述

构建.NET 9项目时持续触发以下错误,且多个项目受影响,Microsoft.Extensions.Logging.Abstractions包也出现相同问题:

Microsoft.PackageDependencyResolution.targets(266,5): error NETSDK1064: 未找到版本为9.0.6的Microsoft.EntityFrameworkCore.Analyzers包。该包可能在NuGet还原后被移除,或因路径长度限制导致还原未完全成功。

已尝试的操作:

  • 执行dotnet nuget locals all --clear
  • 执行dotnet restore
  • 通过dotnet add package Microsoft.EntityFrameworkCore.Analyzers --version 9.0.6手动添加包
  • 验证包在NuGet上存在
  • 缩短项目路径(排查MAX_PATH问题)

深度调试步骤

  1. 启用NuGet还原详细日志
    执行dotnet restore -v diag,查看日志中包下载、解压的具体路径和错误信息,确认是否真的是路径问题,或是存在权限、网络拦截导致包未正确写入本地缓存。

  2. 检查本地NuGet缓存路径
    打开%appdata%\NuGet\NuGet.Config配置文件,查看packageSources和globalPackagesFolder配置,确认缓存路径是否有特殊字符或仍存在长度问题。可手动指定更短的全局缓存路径:

    <config>
      <add key="globalPackagesFolder" value="C:\NuGetCache" />
    </config>
    

    修改后重新执行dotnet restore。

  3. 确认长路径支持是否完全开启

    • Visual Studio端:进入「工具」→「选项」→「项目和解决方案」→「常规」,勾选「启用长路径支持」。
    • 系统端:以管理员身份打开注册表,定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem,将LongPathsEnabled的值设为1。

永久修复方案

  1. 统一全局NuGet缓存路径
    按上述调试步骤将全局NuGet缓存设置到根目录下的短路径文件夹,从根源避免缓存路径过长导致的包识别问题。

  2. 用Directory.Build.props统一包版本
    在解决方案根目录创建Directory.Build.props文件,统一管理所有项目的包版本,避免单个项目版本不一致引发的还原异常:

    <Project>
      <PropertyGroup>
        <EfCoreVersion>9.0.6</EfCoreVersion>
        <LoggingAbstractionsVersion>9.0.6</LoggingAbstractionsVersion>
      </PropertyGroup>
      <ItemGroup>
        <PackageReference Update="Microsoft.EntityFrameworkCore.Analyzers" Version="$(EfCoreVersion)" />
        <PackageReference Update="Microsoft.Extensions.Logging.Abstractions" Version="$(LoggingAbstractionsVersion)" />
      </ItemGroup>
    </Project>
    
  3. 清理MSBuild相关缓存
    执行以下命令清理MSBuild本地缓存,消除残留的异常缓存文件:

    dotnet clean -v diag
    rmdir /s /q "%USERPROFILE%\.nuget\packages\.tools"
    rmdir /s /q "%USERPROFILE%\AppData\Local\Microsoft\MSBuild"
    

    清理完成后重新构建项目。

  4. 更新Visual Studio与.NET SDK
    .NET 9属于较新版本,确保已安装最新的.NET 9 SDK和Visual Studio对应更新补丁,规避IDE兼容性导致的构建问题。

内容的提问来源于stack exchange,提问作者urtopcuoglu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 20:05:02