참조 된 프로젝트는 컴파일 시간에 "손실"됩니다.


102

서비스 (주 프로젝트)와 로거의 두 프로젝트가있는 C # 솔루션이 있습니다. 이 서비스는 로거의 클래스를 사용합니다. 서비스 프로젝트 내에서 로거 프로젝트에 대한 참조를 추가했습니다. 디자인 타임에 자동 완성은 잘 작동합니다. 로거의 클래스가 표시되고 내가 사용하는 참조는 적절하게 색상이 지정됩니다.

솔루션을 다시 빌드하면 문제가 발생합니다. 참조가 더 이상 인식되지 않습니다. " '로깅'이라는 이름이 현재 컨텍스트에 존재하지 않습니다. '클래스가 더 이상 자동 완성에 존재하지 않습니다. 참조를 제거하고 다시 연결하면 자동 완성에 식별자를 표시하는 기본 상태로 돌아갑니다.

재부팅하고 모든 캐시를 지우고 이것이 내 컴퓨터에서 실행되는 유일한 VS 2010 인스턴스인지 확인했습니다.

내가 놓친 (분명히) 명백한 것이 있습니까?

답변:


158

프로젝트 속성에서 각 프로젝트의 빌드 유형을 확인하십시오. 하나 또는 다른 하나가에 대해 빌드되도록 설정됩니다 .NET XX - Client Profile.

일관되지 않은 버전, 특히 한 존재 Client Profile와 그렇지 않은 경우 디자인 타임에는 작동하지만 컴파일 타임에는 실패합니다. 진짜 잡았다.

Visual Studio 2010에서 재미있는 일이 일어나고 있습니다. 프로젝트를 무작위로으로 설정 Client Profile하고 때로는 프로젝트를 만들 때, 때로는 며칠 후에 프로젝트를 계속 설정합니다 . 아마 내가 실수로 치는 키보드 단축키 ...


1
나는 당신이 옳다고 장담 할 것입니다. 만약 그렇다면 제가 지난달에 물었던이 비슷한 질문을 기억하지 못한 것에 대해 저를 부끄럽게 생각합니다! stackoverflow.com/questions/3991361/…
Bob Kaufman

6
@Bob 그것은 나에게 계속 피를 흘리고 있습니다. 당신이 이전 질문을 가지고있는 것처럼, 그것이 일어날 때마다, 적어도 몇 분 동안 나는 내가 "오, 잠깐, 클라이언트 **를 기억할 때까지 전체적으로 완전히 혼란스러워합니다. ** ing Profile "
joshcomley

4
VS2012에서도이 문제가 발생했습니다. Client Profile 문제가 아닌 것으로 밝혀졌지만 참조 된 프로젝트는 4.5에 있고 참조한 새 프로젝트는 기본적으로 4.0으로 설정되었습니다. 1에서 4.5로 문제가 해결되었습니다. 실제로 동일한 솔루션, 또 다른 변형입니다.
Brad Mathews 2013

이것은 최근 VS 2013에서 나에게 일어났습니다. 프로젝트는 기본 4.5 였지만 라이브러리 중 하나는 4.5.2에 빌드되었습니다. 프로젝트가 4.5.2이고 라이브러리 중 하나가 4.5 또는 4.5.1이면 작동합니다. 그러나 그 반대는 아닙니다.
ahwm

4

여기에서 두 프로젝트의 대상 프레임 워크 버전이 동일한 지 확인하십시오 . 프로젝트-> 속성-> 애플리케이션 (탭)-> 대상 프레임 워크를 마우스 오른쪽 버튼으로 클릭 하십시오.

또한 프로젝트 "로거"(메인 프로젝트에 포함시키려는)의 출력 유형이 "클래스 라이브러리"인지 확인 하십시오. 프로젝트-> 속성-> 애플리케이션 (탭)-> 출력 유형을 마우스 오른쪽 버튼으로 클릭하십시오.

마지막으로 솔루션을 다시 빌드 하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.