Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Visual Studio - PathTooLongException even when the path length is less than 260 characters

I know that max path length allowed while creating a project is 260 characters and 248 characters for directory. But I'm getting this error even when my my path length is less than 200 characters.

My solution file resides in this folder C:\Users\username\Documents\Visual Studio 2010\Projects\Health12.Domain12.WardManagement => 88 characters When I try to add a new class library with name "Health12.Domain12.WardManagement.Service.Contract" to this solution, it gives me path too long exception.

C:\Users\username\Documents\Visual Studio 2010\Projects\Health12.Domain12.WardManagement\Health12.Domain12.WardManagement.Service.Contract => 138 characters

C:\Users\username\Documents\Visual Studio 2010\Projects\Health12.Domain12.WardManagement\Health12.Domain12.WardManagement.Service.Contract\Health12.Domain12.WardManagement.Service.Contract.csproj => 195 characters

None of the possible files or folders crosses the 260 character limit.

If i change the project name from "Health12.Domain12.WardManagement.Service.Contract" to "Health12.Domain12.WardManagement.Service.Con", it works fine. Any idea why visual studio won't allow to create project even when it is not crossing max allowed length limit.

like image 927
Andy Avatar asked Jul 23 '13 10:07

Andy


2 Answers

The length of the path in Visual Studio is computed as follow:

  1. Path to solution: C:\Users\username\Documents\Visual Studio 2010\Projects\Health12.Domain12.WardManagement\ = 89 chars
  2. 2 * Project name : Health12.Domain12.WardManagement.Service.Contract\ = 50 chars
  3. Reserved chars : Additionnal characters for the files in the project, the compiled files, temporary files, ... = 80 chars

In your case: 89 + 2*50 + 80 = 269

The limit is 259 ((Drive char):\(256-character path)) (see Naming Files, Paths, and Namespaces)

You have to remove 10 chars. Either you reduce the length of the path to the project by 10 chars or you remove 5 chars in the project name ("tract" for example works).

like image 60
Cédric Bignon Avatar answered Sep 28 '22 16:09

Cédric Bignon


This limit is part of the Windows Kernel and is hardly solvable. I found a workaround that ALLOW working with path with more than 260 chars.

Disclaimer: I've tried this trick only on Windows 8 x64 and Visual Studio 2013

So, to make it work I've just create a junction to the folder with the mklink command:

Assume this is the original path: d:\very\very\long\path\to\solution\folder, you can obtain a short link as d:\short_path_to_solution_folder just jaunching this command from a dos shell as administrator:

mklink /J d:\short_path_to_solution_folder d:\very\very\long\path\to\solution\folder

change source and destination path to meet you needs.

Best Regards! Stelvio

like image 31
Stelvio Ceccotti Avatar answered Sep 28 '22 17:09

Stelvio Ceccotti