c# - 使用 NuGet 构建时的长路径

标签 c# visual-studio msbuild nuget

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

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

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

最佳答案

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

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

关于c# - 使用 NuGet 构建时的长路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19654920/

相关文章:

c# - 使用通配符在 csproj 中包含内容

c# - dotnet publish profile CLI 与 Visual Studio 的行为不同

powershell - PowerShell 中的输出重定向仍然带有颜色

c# - System.Text.Json反序列化错误System.MemoryExtensions无法加载System.Runtime.CompilerServices.Unsafe

visual-studio - NuGet 的默认包源默认为新添加的源,而不是 All 或 nuget.org

visual-studio - 如何在 Visual Studio 2015 的工具提示中查看重载签名

c# - ExtractMethodCodeRefactoringProvider 遇到错误并已被禁用的原因?

c# - 如何实现 C# Rhino 安全

c# - System.Refelection.Assembly.CreateInstance 在 .NET 4.0 中损坏

c# - ASP.NET MVC : No IUserTokenProvider is registered using Ninject