2013-11-25 84 views
2

我编译在Visual Studio中的一个项目后,我升级从2009版到2012年在非常最后阶段,我得到的是一条错误:什么是错误MSB4198:“表达‘目录名’无法评估”

error MSB4198: The expression "DirectoryName" cannot be evaluated on item "..\..\..\..\..\obj\win32\vs11.0\MyProject\debug\MyProject_debug.pch". 
       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. 

我试图寻找错误,它似乎是在连接器(可能是由于从VS版本(?)转换)某些错误,但我不能找到一个合适的解决方案。 属性|的值配置属性|链接器|该项目中的输出文件$(OutDir)$(TargetName)$(TargetExt),如果有任何帮助。

+0

检查该路径的字符数。我认为它超过了248个字符。 Windows将最大路径长度限制为260个字符。 – Abhineet

+0

绝对路径还是相对路径?造成错误的字符串的字符数肯定是小于200 – Yellow

回答

3

的Visual Studio可能正试图转换“目录名”,并在此过程评价的目录路径。该评估必定已经溢出。

一个常见原因是试图把你的解决方案My Documents。这不像听起来那么好,正是出于这个原因。微软已经使用了太多的允许的路径长度。 (他们真的应该复制的Unix; /home/username仅仅是14个字符)。

+0

你说得对,这似乎是绝对路径(所以不是错误消息引用的实际路径)在这种情况下“溢出” 。我把所有的东西都移到了'C:\ ...'来保存字符,错误就这样消失了。 – Yellow