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

Visual Studio 2013中NuGet报‘Could not find a part of the path’错误求助

解决VS2013 VB.NET项目NuGet路径空格导致的"Could not find a part of the path"错误

我之前也碰到过类似的NuGet路径解析问题,结合你描述的情况(VS2013+NuGet v2.12,修改nuget.targets后仍有空格问题,升级Update5后短暂正常又复发),给你几个实际可行的排查和解决思路:

1. 彻底清理缓存,避免旧配置干扰

有时候VS的构建缓存或者NuGet的本地缓存会导致修改的配置不生效,先做一次彻底清理:

  • 关闭VS2013,删除项目目录下的packages、bin、obj文件夹
  • 以管理员身份打开命令提示符,运行NuGet缓存清理命令:
    nuget locals all -clear
    
  • 重新打开VS,右键点击解决方案,选择启用NuGet包还原,然后尝试重新构建项目

2. 修正nuget.targets的路径处理逻辑

你之前的条件判断写法可能还是有漏洞,换成用.NET的路径处理方法来自动维护正确的路径格式,避免手动判断的误差:
找到解决方案下的.nuget\nuget.targets文件(如果是全局NuGet配置,路径一般是C:\Program Files (x86)\NuGet\Config,但优先修改解决方案本地的配置),替换PaddedSolutionDir节点为:

<PaddedSolutionDir Condition=" '$(OS)' == 'Windows_NT' ">$([System.IO.Path]::GetFullPath('$(SolutionDir)'))</PaddedSolutionDir>
<PaddedSolutionDir Condition=" '$(OS)' != 'Windows_NT' ">$(SolutionDir)</PaddedSolutionDir>

GetFullPath方法会自动处理路径的末尾分隔符,不会添加多余空格,能从根源避免路径拼接错误。

3. 检查解决方案路径是否存在特殊字符

虽然升级Update5后短暂正常,但如果你的解决方案所在路径包含空格、中文或者特殊符号(比如&、#),可能会触发VS或NuGet的路径解析bug。建议:

  • 把解决方案移动到一个无空格、无特殊字符的路径下(比如D:\Projects\MyVBProject)
  • 重新打开解决方案并构建测试

4. 验证VS2013 Update5的安装完整性

有时候Update5的安装可能不完整,导致NuGet与VS的集成出现异常:

  • 卸载VS2013 Update5,重启电脑后重新下载并安装官方的Update5安装包
  • 安装完成后,再次确认NuGet是v2.12.0.817版本(工具→NuGet包管理器→管理解决方案的NuGet包→设置→查看NuGet版本)

5. 强制指定NuGet包存放路径

在解决方案根目录新建一个NuGet.Config文件,添加以下配置,明确指定包的存放路径,减少路径解析的变数:

<configuration>
  <config>
    <add key="repositoryPath" value="$(SolutionDir)\packages" />
  </config>
</configuration>

这个配置会强制NuGet将所有包下载到解决方案下的packages文件夹,避免因路径解析差异导致的错误。

如果以上方法都试过还是无法解决,可以尝试手动编辑.vbproj项目文件,把NuGet相关的导入路径改成绝对路径(比如把$(SolutionDir)\.nuget\nuget.targets改成D:\Projects\MyVBProject\.nuget\nuget.targets),这是兜底的解决方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:39:52