【问题标题】:Long paths when building with NuGet使用 NuGet 构建时的长路径
【发布时间】:2013-10-29 09:58:53
【问题描述】:

我们正在制作一个框架并将资源出售给客户。昨天,一位客户报告说,由于路径太长,他无法构建源。我发现我们在源文件中的最长路径是 NuGet 生成的路径,它是: project\packages\EnterpriseLibrary.ExceptionHandling.Logging.5.0.505.0\lib\NET35\Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging.dll

连同客户放置源的文件夹名称(它不是很长,大约 90 个字符),以及当它与 c:\blablabla... ..\..\..\something 组成绝对路径时奇怪的 VS 行为超过了 260 个字符的限制并且他的 VS 无法编译解决方案。

无论如何我可以解决这个问题?我无法要求客户将源代码放置在更靠近磁盘根目录的位置——他对将代码放置在公司内部的哪个位置有自己的协议。我也可以重命名这个 dll,但我不想失去对 NuGet 的支持。

【问题讨论】:

  • 使用此策略将允许您使用符号链接缩短文件夹的路径:MKLINK /D "C:\tmp" "C:\your\really\long\path\here"

标签: c# visual-studio msbuild nuget


【解决方案1】:

你无能为力。如果您的源代码以合理的路径编译(比如说“D:\ExternalCode\yourcode”),那么这真的取决于您的客户来处理。如果客户决定您的代码必须在您的解决方案之前在已经有 240 个字符的路径中编译怎么办?你会缩短你所有的名字吗?

您需要做的是提供一份简洁明了的如何构建代码的手册。由路径长度引起的错误将得到解决,您必须提供解决方案。该解决方案很可能是“缩短我们的代码部署到的路径”。您无法适应其他所有公司的规章制度。

【讨论】:

  • 很遗憾,我无权这样做。我们记录了限制,但框架只有 160 个字符,我们已经违反了该规则。我不可能增加这个数字。不过还是谢谢你的回答
猜你喜欢
  • 2020-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多