我最近重新组织了我们的源代码控制,发现我们的解决方案之一不再构建。我们得到的唯一错误是:
错误65未知的构建错误,' 指定的路径,文件名或两者都是 太长。完全限定的文件 名称必须少于260个字符, 目录名称必须少于 超过248个字符。'
我浏览了visual studio中的每个引用,每个引用的最长完整路径(路径和文件名)是161个字符。
我的解决方案文件夹结构是:
C:\ projects_svn \ ABC \分支\ 03年2月1日\ ABC \ ABC SUITE \ ABC.DEF.GHIJKLM.NOP \
任何帮助都会非常感激,我不认为这个文件夹结构太长,考虑到项目规模,并且组织事情要好得多。
以下是一些可能有用的技术细节(如果您需要更多信息,请告诉我们): 在Windows XP或Windows 7上运行的Visual Studio 2008 SP 2.使用Subversion作为SCM。用C#/ WPF编码。
由于
答案 0 :(得分:5)
我认为这里可能发生的事情是你的一个项目正在使用相对提示路径,该路径远远超过树,然后返回目录结构。例如
c:\foo\bar\baz\..\..\..\some\other\dir\foo.dll
即使实际文件的路径小于256,相对goop也会使它更长。
找到这些内容的最佳方法是在所有.csproj / .vbproj文件中搜索字符串..\..\
。看看是否会出现任何结果。
答案 1 :(得分:0)
您还需要考虑SVN的“背景”文件。
虽然我可能有这样的短文件名: C:\ myfolder1 \ myfolder2 \ MyFile.txt的
可能在某个地方潜伏着一个更长的文件名版本,如下所示: C:\ myfolder1 \ myfolder2.svn \文本基\ MyFile.txt.svn基
那个背景文件是一个“太长”的错误。
这是我通过CCNET(调用MSBUILD文件)使用SVN源代码控制获得的内容。 删除特定名称以保护无辜者。 (还有我的工作!)
请注意,此“名称按摩”会导致较短的路径,可能不会产生错误。 Aka,不计算我的按摩例子中的字符数。 但错误信息是我得到的。
Removing directory "C:\CCNETEnvironment\MyFolder2\MyProject\working\checkout".
C:\src\MyFolder1\MyProject\My_MSBuild.xml(173,5): error MSB3231: Unable to remove directory "prop-base". The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.
C:\src\MyFolder1\MyProject\My_MSBuild.xml(173,5): error MSB3231: Unable to remove directory "text-base". The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.
C:\src\MyFolder1\MyProject\My_MSBuild.xml(173,5): error MSB3231: Unable to remove directory "prop-base". The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.
C:\src\MyFolder1\MyProject\My_MSBuild.xml(173,5): error MSB3231: Unable to remove directory "text-base". The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.
C:\src\MyFolder1\MyProject\My_MSBuild.xml(173,5): error MSB3231: Unable to remove directory "C:\CCNETEnvironment\MyFolder2\MyProject\working\checkout". Could not find a part of the path 'MyFile.txt.svn-base'.
Done building target "Clean" in project "My_MSBuild.xml" -- FAILED.