최대 1 분 소요

😢상황

  • WPF 프로젝트에서 사용자 정의 컨트롤(UserControl) 을 정의하고
    XAML에서 <local:MyControl /> 형태로 사용하려 함
  • 그러나 Visual Studio 디자인 코드 창에 다음과 같은 메시지 발생:
"MyControl" 이름이 "clr-namespace:MyApp.Controls" 네임스페이스에 없습니다.

메시지 예시
메시지 예시

  • 컨트롤은 분명히 존재하지만 디자인 타임에서 인식되지 않아 미리보기 불가

🛠️해결법

해결 방법: 프로젝트를 한 번 빌드하면 해결됨

  • 이 오류는 대부분 디자인 타임에서 사용자 정의 컨트롤 DLL을 찾지 못해 발생
  • 빌드 이전에는 아직 해당 컨트롤이 컴파일되지 않았기 때문에 XAML 디자이너가 인식하지 못함

정리: 왜 이게 효과 있었는가?

  • XAML 디자이너는 디자인 타임에 컴파일된 어셈블리를 기준으로 사용자 정의 컨트롤을 불러옴
  • 초기에는 해당 컨트롤이 컴파일되지 않아 “네임스페이스에 없음” 오류 발생
  • 한 번 빌드하면 컴파일 결과가 생성되고, 디자이너가 정상적으로 컨트롤을 로드