Visual Studio 2008 - Почему vshost.exe имеет ограничение полного пути в 126 символов? - PullRequest
2 голосов
/ 23 сентября 2010

Исходя из предыдущего поставленного мной вопроса (см. здесь ) и следующих потоков msdn, почему отладка завершается неудачно, если полный путь vshost.exe> ​​= 127 символов?

Чтобы воспроизвести проблему, создайте проект с полным путем (каталог + имя сборки + vshost.exe), который составляет> = 127 символов. Затем нажмите F5, чтобы начать отладку, и программа немедленно выйдет.

Обратите внимание, моя среда - Visual Studio 2008, C #, Windows XP, .NET 3.5 SP1.

1 Ответ

1 голос
/ 23 сентября 2010

Это хорошо известная проблема.Некоторое время от MS рекомендовалось не использовать каталоги по умолчанию для расположения проектов в XP / Vista.В частности, для создания каталога «Projects» вне корневого каталога.

Кстати, это одна из основных причин, по которой MS отказалась от папки «Documents and Settings» в пользу «Users».Они не смогли это исправить по разным причинам.

ОБНОВЛЕНИЕ

Кстати, вот небольшое чтение с нашего любимого хоста .Кроме того, вы можете проверить эту статью MS .

И, для ударов: https://connect.microsoft.com/VisualStudio/feedback/details/338223/envdte80-solution2-addfromtemplate-reports-path-too-long-incorrectly

Реальная точка зрения в том, что если ваша папка проекта + имя проекта+ 80 символов превышает MAX_PATH, тогда это не будет работать.Они действительно начали применять это для предотвращения переполнения буфера в частях API, которые не совместимы с юникодом и поэтому не могут использовать 32 000 символьных путей.

Кроме того, команда библиотеки предприятия столкнулась с те же проблемы .

В случае вашей vshost рассмотрите полный путь, включающий 80 + 126 (что составляет 206), что оставляет вам менее 54 символов для других вещей, которые vshostтребует на линии.Конечно, вы должны принимать во внимание косые черты и другие вещи.

Простой ответ - просто переместить ваш проект или иным образом выяснить, как уменьшить пути.

...