말 그대로다.
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 인가? 자동완성인가? 그 기능을 이용해 봐라.
모듈의 상위, 하위 계층을 오가면서 접근 가능한 클래스 메소드 리스트 수동으로 눈으로 뒤지다 보면, 맞는 경로를 찾을 수 있다.
글로만 써 놔서 이해가 힘들 수도 있지만, 화면갈무리 하기가 귀찮은 관계로 ( 사무실이라 ) 그냥 말로만 때움.
끝.
'프로그램' 카테고리의 다른 글
MS Access 에서 쿼리문 직접 실행 방법. (0) | 2016.01.29 |
---|---|
테이블을 생성할 때 AUTO_INCREMENT 값 설정. MSSQL vs MySQL. (0) | 2016.01.05 |
이미지 병합 프로그램 버전업 3. (5) | 2015.12.06 |
이미지 병합 프로그램 버전업 2. (0) | 2015.12.06 |
node.js - cannot find module 'routes' 오류. (0) | 2015.10.24 |