根据我提出的上一个问题(请参阅here)和以下msdn线程,为什么在vshost.exe的完整路径为> = 127个字符时调试失败?
要重现此问题,请创建一个具有> = 127个字符的完整路径(目录+程序集名称+ vshost.exe)的项目。然后按F5开始调试,程序将立即退出。
注意,我的环境是Visual Studio 2008,C#,Windows XP,.NET 3.5 SP1。
答案 0 :(得分:1)
这是众所周知的问题。 MS推荐的一段时间是不使用XP / Vista上项目位置的默认目录。特别是从根目录创建“Projects”目录。
顺便说一下,这是MS取消“文档和设置”文件夹以支持“用户”的主要原因之一。由于各种原因,他们无法解决这个问题。
<强>更新强>
顺便说一句,这是我们favorite host的一点读物。另外,您可能需要查看此MS article。真正的一点是,如果您的项目文件夹+项目名称+ 80个字符超过MAX_PATH,那么它将无法工作。他们开始在{+ 3}}中对不符合unicode的API部分强制执行此操作,因此无法利用32,000个字符路径。
此外,企业图书馆团队遇到了prevent buffer overflows。
对于你的vshost,考虑完整路径包括80 + 126(即206),其中vshost需要的其他东西少于54个字符。当然,你必须考虑斜线和其他事情。
简单的答案是移动您的项目或以其他方式弄清楚如何减少路径。