OpenFileDialog 슀크둀 μ‹œ Crash

제λͺ© 보고 λ‚΄μš©μ„ 이미 μ•„μ‹€ λ§Œν•œ 뢄듀은 이미 μ•„μ‹€ 것 κ°™μŠ΅λ‹ˆλ‹€. 문제λ₯Ό ν•΄κ²°ν•œ κ²°κ³Όλ₯Ό κ³΅μœ ν•˜κΈ° μœ„ν•΄ Claude Codeλ₯Ό 톡해 μ •λ¦¬ν•΄μ„œ λ³΅λΆ™ν•œ κΈ€μž…λ‹ˆλ‹€. AI 문체 μ–‘ν•΄ λΆ€νƒλ“œλ¦½λ‹ˆλ‹€.


[해결됨] .NET OpenFileDialog/OpenFolderDialog 슀크둀 μ‹œ Freeze ν›„ Crash ν˜„μƒ

ν™˜κ²½

  • Windows 10/11
  • .NET WPF μ• ν”Œλ¦¬μΌ€μ΄μ…˜
  • NVIDIA GPU λ“œλΌμ΄λ²„ μ„€μΉ˜ ν™˜κ²½

증상

  • Microsoft.WindowsAPICodePack.Shell의 CommonOpenFileDialog λ˜λŠ” Microsoft.Win32.OpenFolderDialog 호좜
  • λ‹€μ΄μ–Όλ‘œκ·Έμ—μ„œ 파일/폴더 λͺ©λ‘μ„ μŠ€ν¬λ‘€ν•  λ•Œ 화면이 Freeze
  • 이후 ν”„λ‘œμ„ΈμŠ€κ°€ Crashλ˜μ–΄ μ’…λ£Œλ¨

원인

NVIDIA λ“œλΌμ΄λ²„μ™€ ν•¨κ»˜ μ„€μΉ˜λ˜λŠ” Shell Extension이 μ›μΈμ΄μ—ˆμŠ΅λ‹ˆλ‹€.

  • Extension 이름: NVIDIA CPL Context Menu Extension
  • μ„€λͺ…: NVIDIA Display Shell Extension

Windows 파일 λ‹€μ΄μ–Όλ‘œκ·ΈλŠ” 폴더/파일 λͺ©λ‘μ„ ν‘œμ‹œν•  λ•Œ μ„€μΉ˜λœ Shell Extension DLL을 ν”„λ‘œμ„ΈμŠ€ λ‚΄λΆ€μ—μ„œ λ‘œλ“œν•©λ‹ˆλ‹€. 슀크둀 μ‹œ μƒˆλ‘œμš΄ ν•­λͺ©μ΄ 화면에 ν‘œμ‹œλ˜λ©΄ ν•΄λ‹Ή ν•­λͺ©μ— λŒ€ν•œ Extension μ½”λ“œκ°€ μ‹€ν–‰λ˜λŠ”λ°, 이
κ³Όμ •μ—μ„œ NVIDIA Shell Extension의 λ²„κ·Έλ‘œ 인해 ν”„λ‘œμ„ΈμŠ€ 전체가 Crashλ©λ‹ˆλ‹€.

Shell Extension λ™μž‘ ꡬ쑰

OpenFolderDialog 호좜
↓
Windows Shell이 파일/폴더 λͺ©λ‘ ν‘œμ‹œ
↓
각 ν•­λͺ©λ§ˆλ‹€ Shell Extension DLL λ‘œλ“œ 및 μ‹€ν–‰ (In-Process)
↓
슀크둀 β†’ μƒˆ ν•­λͺ© ν‘œμ‹œ β†’ Extension μ½”λ“œ μ‹€ν–‰
↓
문제의 DLLμ—μ„œ 였λ₯˜ λ°œμƒ β†’ 호슀트 ν”„λ‘œμ„ΈμŠ€ Crash

Shell Extension은 λ‹Ήμ‹ μ˜ ν”„λ‘œμ„ΈμŠ€ λ©”λͺ¨λ¦¬ 곡간 μ•ˆμ—μ„œ μ‹€ν–‰λ©λ‹ˆλ‹€. 별도 ν”„λ‘œμ„ΈμŠ€κ°€ μ•„λ‹ˆκΈ° λ•Œλ¬Έμ— ν•΄λ‹Ή DLLμ—μ„œ 였λ₯˜κ°€ λ‚˜λ©΄ λ‹Ήμ‹ μ˜ 앱이 ν•¨κ»˜ μ£½μŠ΅λ‹ˆλ‹€.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ λ‹Ήμ‹ μ˜ ν”„λ‘œμ„ΈμŠ€ (.exe) β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚ β”‚ OpenFolderDialog β”‚ β”‚
β”‚ β”‚ β”œβ”€ Microsoft Shell DLL βœ“ β”‚ β”‚
β”‚ β”‚ β”œβ”€ Dropbox.dll βœ“ β”‚ β”‚
β”‚ β”‚ β”œβ”€ 문제의Extension.dll βœ— ←── μ—¬κΈ°μ„œ Crash β”‚ β”‚
β”‚ β”‚ └─ … β”‚ β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
↓ 전체 ν”„λ‘œμ„ΈμŠ€ 사망

ShellExView둜 문제의 DLL을 μ°Ύμ•„ λΉ„ν™œμ„±ν™”ν•˜λ©΄ ν•΄κ²°λ©λ‹ˆλ‹€.

ν•΄κ²° 방법

1. ShellExView λ‹€μš΄λ‘œλ“œ

2. κ΄€λ¦¬μž κΆŒν•œμœΌλ‘œ μ‹€ν–‰

shexview.exe β†’ 우클릭 β†’ κ΄€λ¦¬μž κΆŒν•œμœΌλ‘œ μ‹€ν–‰

3. 범인 μ°ΎκΈ°

  1. Options 메뉴 β†’ Hide All Microsoft Extensions 체크
  2. 뢄홍색 배경으둜 좜λ ₯λ˜λŠ” item 듀이 μ˜ˆμƒλ˜λŠ” λͺ©λ‘
  3. 껐닀 μΌ°λ‹€ ν•˜λ©΄μ„œ 범인 μƒ‰μΆœ

4. μž¬λΆ€νŒ… λ˜λŠ” Explorer μž¬μ‹œμž‘

변경사항 μ μš©μ„ μœ„ν•΄ Windows 탐색기λ₯Ό μž¬μ‹œμž‘ν•˜κ±°λ‚˜ μ‹œμŠ€ν…œμ„ μž¬λΆ€νŒ…ν•©λ‹ˆλ‹€.

μ°Έκ³ 

  • 이 λ¬Έμ œλŠ” νŠΉμ • 라이브러리(WindowsAPICodePack)의 λ¬Έμ œκ°€ μ•„λ‹Œ μ‹œμŠ€ν…œ 레벨의 Shell Extension μΆ©λŒμž…λ‹ˆλ‹€.
  • Microsoft.Win32.OpenFolderDialog λ“± λ‹€λ₯Έ 파일 λ‹€μ΄μ–Όλ‘œκ·Έμ—μ„œλ„ λ™μΌν•œ 증상이 λ°œμƒν•©λ‹ˆλ‹€.
  • NVIDIA 외에도 ν΄λΌμš°λ“œ μŠ€ν† λ¦¬μ§€(Dropbox, OneDrive), μ••μΆ• ν”„λ‘œκ·Έλž¨(7-Zip), 버전 관리 도ꡬ(TortoiseSVN/Git) λ“±μ˜ Shell Extensionμ—μ„œ μœ μ‚¬ν•œ λ¬Έμ œκ°€ 보고된 λ°” μžˆμŠ΅λ‹ˆλ‹€.

κ΄€λ ¨ 링크


이번 κΈ°νšŒμ— Windows 파일 탐색기가 Shell Extension μ΄λΌλŠ” 것도 처음 μ•Œμ•˜μŠ΅λ‹ˆλ‹€.

6개의 μ’‹μ•„μš”