프로그램

C#에서 "<클래스이름/네임스페이스이름>" 형식 또는 네임스페이스 이름을 찾을 수 없습니다.

(주)CKBcorp., 2015. 12. 25. 14:07
반응형

말 그대로다. 

C#에서, "형식 또는 네임스페이스 이름을 찾을 수 없습니다." 라는 컴파일 에러가 떳을 때 검토해야 할 내용을 적어본다. ( = 내가 삽질했다는 뜻. )


1. 철자. 대소문자.

가장 일반적인 경우가, 

1.1. 예를 들어 공통 함수 혹은 메소드로 사용할 Class1 라는 클래스 혹은 네임스페이스를 선언해 놓고,

1.2. 클래스를 사용할 때 Using 키워드 선언을


using class1;


이런 식으로 대소문자를 잘못 쓰거나, 혹은 철자 오류 났거나... 뭐 이런거. 이게 가장 흔하다.


오류 구문 혹은 상단의 include ( = using ) 구문의 철자를 철저히 살펴볼 것.



2. Assembly 미포함.

첨부터 작업하던 프로젝트에 namespace 나 class 등을 추가하면 모르지만,

외부 모듈을 추가하는 경우에는

선언부( include ? 이걸 C# 에서 뭐라해야 할 지 모르겠다. using 이라고 해야하나 ) 이외에 구현부 ( 예를 들면 dll ) 가 필요하다.

이 구현부( 그냥 dll 이라고 하자 ) 를 추가하는 방법은... 말 그대로 dll 파일을 프로젝트에 추가하면 된다.

근데, 만약 외부 모듈이 프로젝트 단위로 배포된다면 ( 공개 API 가 아닌 경우는 이런 경우가 있다 ), 


2.1. 프로젝트가 아닌 솔루션에 모듈 프로젝트를 추가하고,

2.2. 당연히 1.1. 혹은 1.2. 의 작업을 소스 코드에 수행.

2.3. 그리고 추가한 모듈 프로젝트를 단독으로 재컴파일 하는 게 필요하다.


즉, 모듈 프로젝트만 재컴파일 하라는 소리다. ( 프로젝트 배포라면, 해당 모듈만 재컴파일 하는 게 가능할 터다. )


이걸 해야 실제 dll 같은 함수의 구현부 파일 ( 오브젝트 파일이라고 해야하나 ) 이 생성되서, 사용이 가능하다.

물론, 컴파일 후에는 명시적으로 "참조 추가" 도 해 줘야 한다.

자세한건 "C# 참조 추가" 로 인터넷에 검색해 볼 것.


3. 네임스페이스 변경.


이런 경우도 있다.

2. 와 같이, 소스 레벨에서 컴파일 추가를 위해 프로젝트를 가져왔는데, 컴파일도 해보고 이것저것 다 해 봐도 "형식 또는 네임스페이스 이름을 찾을 수 없다" 는 오류가 계속 뜨는 경우.


이 경우는, 아마 추가한 모듈 프로젝트 관련 예제를 보고 작업하다 에러를 해결 못 한 경우일 텐데,

원인은 네임스페이스 변경일 수 있다.


뭔소리냐면... 프로젝트를 추가로 가져와서 컴파일 한 거라서, 원래 모듈의 사용 예제와 현재 사용중인 모듈의 상하 관계나 포함관계나... 뭐 그런게 어그러 졌을 가능성이 있다.


이 경우, 정확한 해결책은, 실제 작업중인 solution 과 project 의 구성을 해당 API 를 제공한 곳에 물어보는게 best 이지만... 그런 걸 해 줄 업체가 있을리가 없으니까,

해당 모듈을 new 로 하나 만들고, 코딩 화면에서 그 객체에 대해 점을 찍어서 intelliSense 인가? 자동완성인가? 그 기능을 이용해 봐라. 

모듈의 상위, 하위 계층을 오가면서 접근 가능한 클래스 메소드 리스트 수동으로 눈으로 뒤지다 보면, 맞는 경로를 찾을 수 있다.




글로만 써 놔서 이해가 힘들 수도 있지만, 화면갈무리 하기가 귀찮은 관계로 ( 사무실이라 )  그냥 말로만 때움.


끝.

반응형