【发布时间】:2017-08-31 02:20:43
【问题描述】:
尝试将 nuget 包安装到标准 .NET Framework 4.7 项目中时出现以下错误:
指定的路径、文件名或两者都太长。完全限定的文件名必须少于 260 个字符,目录名必须少于 248 个字符。
我正在使用 Visual Studio 2017 15.3.3 Enterprise(最新最好的)。
鉴于这是我的包,我可以完全控制源代码。有趣的是,我过去使用过这个包,名称没有变化,但为了这个循环,我重新构建了它以添加一个功能,现在出现了这个错误。
更有趣的是我有来自同一个库的包,具有相同的命名空间约定,具有 longer 名称,它们工作得很好,并且安装到同一个项目中完全没有问题。
我已经尝试过缩小包名,缩小包本身的类名,清理构建目录,清理来自 nuget 服务器的包主目录(它是安装了最新 nuget.server 的本地服务器,否则工作正常),甚至清除相关项目的 bin 目录,清除所有祖先的所有 bin 目录到“违规”包,清除包缓存,重新启动计算机并重建整个 nuget 包从头开始连锁,一切都无济于事。一位 MS MVP 告诉我“他们解决了这个问题”。显然没有。
如果有任何帮助,我将不胜感激,我已经无计可施,没有想法可以尝试。
谢谢。
【问题讨论】:
-
项目存储在您计算机的哪个位置?我发现最好将它们放在 C 驱动器的根目录中,否则我也会遇到此类问题。
-
它在默认位置:c:\user\documents\visual studio 2017\projects\ 等。我同意你关于名称的长度,但是,正如我之前所说,我有一些名称比这个更长的包,它们存在于相同的树结构中(相同的深度,更长的名称),它们工作得很好,我真的不想仅仅因为一个包的异常行为,就将 25 万行代码的大部分移动到新位置。
-
移动文件夹是一个简单的文件操作,不用复制。 (如果您从命令行执行,可能会更快)。这是最常见的原因,您可能会受到 VS 中某些目标更改的影响,这些更改会导致
obj中的文件具有更长的名称。目前有些人对项目文件的名称有疑问。 -
@Martin - 很抱歉没有澄清 - 这种结构也反映在 TFS 中,我的团队必须做出同样的改变 - 这会影响大量代码,搞砸 TFS(它非常讨厌我- 我知道,一个软件怎么能“讨厌” - 但它确实如此!)。简而言之,“移动文件夹”选项不是一个选项。但是感谢您的回复...
-
消息究竟来自哪里?它应该与文件或 msbuild 目标相关联