Visual Studio slowdown traversing entire solution looking for/creating Dapper SqlMapper.cs

dapper slowdown visual-studio

Question

I am using Dapper 1.37 and Dapper.SimpleCRUD 1.3.0 in a couple of my projects, added as NuGet packages.

Over time Visual Studio (2013 update 4) has ground to a halt, taking 10 or 20 seconds to load each source file into the editor. Looking into its OS activity using Process Monitor, I see it traverses the entire solution's directories on each file load, trying to create/open SqlMapper.cs in each directory.

Each subdirectory in each project (PROJECT_PATH) in the solution directory has a series of events like this in the Process Monitor trace:

4:04:11.5955306 p.m.    devenv.exe  8368    FASTIO_NETWORK_QUERY_OPEN   PROJECT_PATH\lib    FAST IO DISALLOWED  
4:04:11.5955677 p.m.    devenv.exe  8368    IRP_MJ_CREATE   PROJECT_PATH\lib    SUCCESS Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened
4:04:11.5956773 p.m.    devenv.exe  8368    FASTIO_QUERY_INFORMATION    PROJECT_PATH\lib    SUCCESS Type: QueryBasicInformationFile, CreationTime: 8/07/2014 2:12:02 p.m., LastAccessTime: 8/07/2014 2:12:02 p.m., LastWriteTime: 8/07/2014 2:12:02 p.m., ChangeTime: 8/07/2014 2:12:02 p.m., FileAttributes: D
4:04:11.5956858 p.m.    devenv.exe  8368    IRP_MJ_CLEANUP  PROJECT_PATH\lib    SUCCESS 
4:04:11.5956948 p.m.    devenv.exe  8368    IRP_MJ_CLOSE    PROJECT_PATH\lib    SUCCESS 
4:04:11.5957298 p.m.    devenv.exe  8368    FASTIO_NETWORK_QUERY_OPEN   PROJECT_PATH\lib\Dev\dapper-dot-net\Dapper NET40\SqlMapper.cs   FAST IO DISALLOWED  
4:04:11.5957464 p.m.    devenv.exe  8368    IRP_MJ_CREATE   PROJECT_PATH\lib\Dev\dapper-dot-net\Dapper NET40\SqlMapper.cs   PATH NOT FOUND  Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
4:04:11.5957751 p.m.    devenv.exe  8368    FASTIO_NETWORK_QUERY_OPEN   PROJECT_PATH\lib\dapper-dot-net\Dapper NET40\SqlMapper.cs   FAST IO DISALLOWED  
4:04:11.5957902 p.m.    devenv.exe  8368    IRP_MJ_CREATE   PROJECT_PATH\lib\dapper-dot-net\Dapper NET40\SqlMapper.cs   PATH NOT FOUND  Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
4:04:11.5958125 p.m.    devenv.exe  8368    FASTIO_NETWORK_QUERY_OPEN   PROJECT_PATH\lib\Dapper NET40\SqlMapper.cs  FAST IO DISALLOWED  
4:04:11.5958237 p.m.    devenv.exe  8368    IRP_MJ_CREATE   PROJECT_PATH\lib\Dapper NET40\SqlMapper.cs  PATH NOT FOUND  Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a

Other developers using the same solution do not get events referring to SqlMapper.cs. I have tried:

  • Removing all Dapper NuGet packages
  • Removing Dapper.pdb and Dapper.SimpleCRUD.pdb from all projects where I found it.
  • grep the entire solution for SqlMapper.cs to see what is referencing it (only the .pdb files)
  • Adding a SqlMapper.cs in the first directory that it looks for it in - eliminates the PATH NOT FOUND message for that directory but continues to scan all the others.

Hoping someone can help get me back to the snappy days of yore...

Accepted Answer

I re-cloned my repo.

The problem went away.




Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow
Is this KB legal? Yes, learn why
Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow
Is this KB legal? Yes, learn why