Я использую Dapper 1.37 и Dapper.SimpleCRUD 1.3.0 в нескольких своих проектах, добавленных как пакеты NuGet.
Со временем Visual Studio (обновление 4 2013 г.) остановилась, и на загрузку каждого исходного файла в редактор уходило 10–20 секунд. Глядя на его активность в ОС с помощью Process Monitor, я вижу, что он просматривает все каталоги решения при каждой загрузке файла, пытаясь создать/открыть SqlMapper.cs в каждом каталоге.
Каждый подкаталог в каждом проекте (PROJECT_PATH) в каталоге решения имеет ряд событий, подобных этому, в трассировке Process Monitor:
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
Другие разработчики, использующие то же решение, не получают событий, относящихся к SqlMapper.cs. Я пытался:
- Удаление всех пакетов Dapper NuGet
- Удаление Dapper.pdb и Dapper.SimpleCRUD.pdb из всех проектов, где я их нашел.
- grep все решение для SqlMapper.cs, чтобы увидеть, что на него ссылается (только файлы .pdb)
- Добавление SqlMapper.cs в первый каталог, в котором он его ищет, устраняет сообщение PATH NOT FOUND для этого каталога, но продолжает сканировать все остальные.
Надеясь, что кто-то может помочь мне вернуться к быстрым денькам былых дней...