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

278 views Asked by At

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

1

There are 1 answers

0
fibber On BEST ANSWER

I re-cloned my repo.

The problem went away.