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

25.3k views Asked by At

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.

4

There are 4 answers

3
Cédric Bignon On BEST ANSWER

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).

3
aldap88 On

You could try and change the set path value in regedit to value of 1 and see of that helps. It should be under Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem>LongPathsEnabled Good luck!

0
Shariar Saimon On

Create a folder in DESKTOP and then create your project using visual studio on that folder. Once the .sln file is saved you can move the folder to your original directory, you can open the .sln file which runs successfully. It worked for me.

2
Stelvio Ceccotti On

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