14

3 개의 클래스 라이브러리 프로젝트가 있습니다. 그를 호출 할 수 있습니다, B & C. 나는 C.참조 된 어셈블리의 네임 스페이스를 확인할 수 없어서 Visual Studio에서 빌드가 실패하는 이유는 무엇입니까?

& B는 오류 또는 경고없이 구축 프로젝트에 & B의 project reference을 추가했습니다.

프로젝트 C의 코드 (클래스 파일)는 A & B.의 공개 클래스를 사용합니다. 프로젝트 참조를 C에 추가하고 C 프로젝트에서 클래스 파일 (프로젝트 C를 빌드하기 전에)을 보면 명확하게 볼 수 있습니다. A & B의 모든 클래스와 네임 스페이스가 해결됩니다. 클래스 이름 (A 또는 B 중 하나의 클래스)에 마우스를 올려 놓으면 올바른 네임 스페이스가 표시됩니다.

두 프로젝트 참조에서 모두 Copy Local 속성을 True으로 설정했습니다.

그러나

  1. 나는 그것이 네임 스페이스를 확인하지 못하기 때문에이 빌드가 실패 모두 다시 빌드 (또는 프로젝트 C에 구축) 실행

    ! 모든 것이 올바르게 수행되었는지 확인하려면 무엇을 더 확인할 수 있습니까?
  2. & B의 어셈블리가 프로젝트 C의 bin\debug 폴더에 복사 된 것을 결코 발견하지 못합니다. 왜 참조를 복사하지 않습니까? (이 문제에 대한 몇 가지 질문을 보았지만 그들에게 제공되는 솔루션 중 어느 것도 나를 위해 일하지 못했습니다.)

답변

33

문제가 해결되었습니다. 문제는 프로젝트 C가 '.NET 4 클라이언트 프로파일'프레임 워크를 목표로 삼고 A, B가 '.NET 4'프레임 워크를 목표로 삼고 있다는 것입니다. C의 대상 프레임 워크를 변경하면 모든 것이 성공적으로 구축되었습니다.

답변 : 'Registered User'님께 서 this question 님의 질문에 답변했습니다.

+1

위의 답변을 작성하지 않아도됩니다. . :-) –

+0

@Cody Grey : 문제를보고 편집 질문에 시간을 내 주셔서 감사합니다! – Learner

+0

귀하의 질문은 내 문제를 해결하는 데 도움이됩니다. – IbrarMumtaz

10

모든 프로젝트에서 동일하게 사용되는지 확인 대상 프레임 워크. 예를 들어, 프로젝트 중 하나에서 .Net Framework 4 Client Profile을 사용하고 나머지가 .Net Framework 4 (클라이언트 프로파일이 아님)를 사용하는 경우 그런 종류의 오류가 발생할 수 있습니다.

+1

필자의 경우 v4.5.1 프로젝트는 v4.5.2를 참조하려고했기 때문에 빌드 할 수 없었습니다. – JayJay

관련 문제