Visual Studio - PathTooLongException, даже если длина пути меньше 260 символов
Я знаю, что максимальная длина пути, допустимая при создании проекта, составляет 260 символов и 248 символов для каталога. Но я получаю эту ошибку, даже если длина моего пути меньше 200 символов.
Мой файл решения находится в этой папке C:\Users\ username \ Documents \ Visual Studio 2010 \ Projects \ Health12.Domain12.WardManagement => 88 символов. Когда я пытаюсь добавить новую библиотеку классов с именем "Health12.Domain12.WardManagement.Service ". Контракт" к этому решению, это дает мне путь слишком длинное исключение.
C:\Users\ имя пользователя \ Documents \ Visual Studio 2010 \ Projects \ Health12.Domain12.WardManagement \ Health12.Domain12.WardManagement.Service.Contract => 138 символов
C:\Users\ имя пользователя \ Documents \ Visual Studio 2010 \ Projects \ Health12.Domain12.WardManagement \ Health12.Domain12.WardManagement.Service.Contract \ Health12.Domain12.WardManagement.Service.Contract.csproj => 195 символов
Ни один из возможных файлов или папок не превышает ограничение в 260 символов.
Если я изменю имя проекта с "Health12.Domain12.WardManagement.Service.Contract" на "Health12.Domain12.WardManagement.Service.Con", он будет работать нормально. Любая идея, почему Visual Studio не позволит создать проект, даже если он не пересекает максимально допустимую длину.
4 ответа
Длина пути в Visual Studio вычисляется следующим образом:
- Путь к решению:
C:\Users\username\Documents\Visual Studio 2010\Projects\Health12.Domain12.WardManagement\
= 89 символов - 2 * Название проекта:
Health12.Domain12.WardManagement.Service.Contract\
= 50 символов - Зарезервированные символы: дополнительные символы для файлов в проекте, скомпилированных файлов, временных файлов,... = 80 символов
В вашем случае: 89 + 2*50 + 80 = 269
Лимит 259 ((Drive char):\(256-character path)
) (см. Имена файлов, путей и пространств имен)
Вы должны удалить 10 символов. Либо вы уменьшаете длину пути к проекту на 10 символов, либо удаляете 5 символов в имени проекта ("tract"
например работает).
Этот предел является частью ядра Windows и вряд ли решаем. Я нашел обходной путь, который позволяет работать с путем с более чем 260 символов.
Отказ от ответственности: я попробовал этот трюк только на Windows 8 x64 и Visual Studio 2013
Итак, чтобы это работало, я просто создаю соединение с папкой с помощью команды mklink:
Предположим, что это исходный путь: папка d: \ very \ very \ long \ path \ to \ solution \, вы можете получить короткую ссылку в виде папки d:\short_path_to_solution_folder, просто запустив эту команду из оболочки dos от имени администратора:
mklink /J d:\short_path_to_solution_folder d:\very\very\long\path\to\solution\folder
изменить исходный и целевой путь в соответствии с вашими потребностями.
С уважением! Стельвио
Вы можете попробовать изменить установленное значение пути в regedit на значение 1 и увидеть, что это поможет. Он должен находиться в папке Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem>LongPathsEnabled Удачи!
Создайте папку в DESKTOP, а затем создайте свой проект с помощью Visual Studio в этой папке. После сохранения файла .sln вы можете переместить папку в исходный каталог, вы можете открыть файл .sln, который успешно запускается. Это сработало для меня.