“유형 또는 네임 스페이스 이름을 찾을 수 없습니다”라는 메시지가 표시되지만 모든 것이 정상으로 보입니까? 스페이스 이름을 찾을 수

나는 얻는다 :

유형 또는 네임 스페이스 이름을 찾을 수 없습니다

VS2010의 C # WPF 앱에 오류가 발생했습니다. 이 코드 영역은 제대로 컴파일되었지만 갑자기이 오류가 발생합니다. usingVS2010을 종료하고 다시 시작 하면서 프로젝트 참조 및 명령문을 제거하려고 시도 했지만 여전히이 문제가 있습니다.

내가 왜 올바른 일을하는 것처럼 보이는 곳에서 이것이 일어날 수있는 아이디어가 using있습니까?

또한 VS2010에서 해당 네임 스페이스에 대한 인텔리전스가 정상적으로 작동한다는 것을 지적 했으므로 VS2010에는 프로젝트 참조가 있고 네임 스페이스가 표시되는 것처럼 보이지만 컴파일 중에는 보이지 않습니다.



답변

이는 두 프로젝트 간의 .Net 프레임 워크 버전 비 호환성의 결과 일 수 있습니다.

두 가지 방법으로 발생할 수 있습니다.

  1. 전체 프레임 워크 프로젝트를 참조하는 클라이언트 프로파일 프로젝트; 또는
  2. 최신 프레임 워크 버전을 대상으로하는 이전 프레임 워크 버전

예를 들어, 응용 프로그램이 .Net 4 Client Profile 프레임 워크를 대상으로 설정하고 참조하는 프로젝트가 전체 .Net 4 프레임 워크를 대상으로하는 경우에 발생합니다.

그래서 더 명확하게하기 위해 :

  • 프로젝트 A는 고객 프로파일 프레임 워크를 대상으로합니다
  • 프로젝트 A는 프로젝트 B를 참조합니다
  • 프로젝트 B는 전체 프레임 워크를 목표로합니다

이 경우 솔루션은 응용 프로그램의 프레임 워크 대상을 업그레이드하거나 (프로젝트 A) 참조 된 어셈블리의 대상을 다운 그레이드하는 것입니다 (프로젝트 B). 전체 프레임 워크 앱이 클라이언트 프로파일 프레임 워크 어셈블리를 참조 / 소비하는 것은 좋지만 다른 방법은 아닙니다 (클라이언트 프로파일이 전체 프레임 워크 대상 어셈블리를 참조 할 수 없음).

VS2012 또는 VS2013에서 .Net 4.5를 기본 프레임 워크로 사용하는 새 프로젝트를 만들 때이 오류가 발생할 수 있습니다.

  • 참조 프로젝트는 .Net 4.0을 사용합니다 (VS2010에서 VS2012 또는 VS2013으로 마이그레이션 한 다음 새 프로젝트를 추가 할 때 일반적 임)

  • 참조 된 프로젝트는 더 큰 버전 (예 : 4.5.1 또는 4.5.3)을 사용합니다 (기존 프로젝트를 최신 버전으로 재 타겟팅했지만 VS는 여전히 v4.5를 대상으로하는 새 프로젝트를 생성 한 다음 이전 프로젝트를 참조합니다. 새 프로젝트)


답변

너겟 패키지를 다시 설치하면 나에게 속임수가 있었다. .NET Framework 버전을 모든 프로젝트와 동기화하도록 변경 한 후에도 이전 버전에 대해 일부 nuget 패키지 (특히 Entity Framework)가 설치되었습니다. 패키지 관리자 콘솔의이 명령은 전체 솔루션의 패키지를 다시 설치합니다.

Update-Package reinstall


답변

왜 이것이 효과가 있었는지 모르겠지만 VS2015가 찾을 수 없다고 알려주는 프로젝트 참조를 제거하고 다시 추가했습니다. 문제를 해결했습니다. VS를 청소, 빌드 및 다시 시작하여 아무 소용이 없었습니다.


답변

솔루션을 빌드 할 때 동일한 오류가 발생했습니다 (유형 또는 네임 스페이스 ”를 찾을 수 없음). 그 아래 에서 “참조를 확인할 수 없습니다”라는 경고 가 표시되고 “조립품이 디스크에 있는지”확인했습니다.

DLL이 참조가 가리키는 위치에 매우 명확했기 때문에 매우 혼란 스러웠습니다. VS는 솔루션을 구축하려고 시도 할 때까지 오류를 강조하지 않는 것 같습니다.

나는 마침내 문제를 깨달았다 (또는 적어도 내가 문제라고 생각한 것). 같은 솔루션으로 라이브러리 파일을 작성하고있었습니다. 따라서 디스크에 존재하더라도 해당 위치에서 다시 빌드되었습니다 (어떻게 라이브러리가 다른 프로젝트를 다시 빌드하는 과정에서 동일한 솔루션에서 라이브러리를 참조한 라이브러리가 존재하지 않는다고 결정해야 함)

프로젝트를 마우스 오른쪽 버튼으로 클릭하고 전체 솔루션 대신 해당 솔루션 만 빌드했을 때 오류가 발생하지 않았습니다.

이 문제를 해결하기 위해 라이브러리를 사용중인 프로젝트에 대한 종속성으로 라이브러리를 추가했습니다.

이것을하기 위해:

  1. 솔루션 탐색기에서 솔루션을 마우스 오른쪽 버튼으로 클릭하고 “속성”을 선택했습니다.
  2. 그런 다음 “공통 속성”에서 “프로젝트 종속성”을 선택했습니다.
  3. 그런 다음 프로젝트 드롭 다운 메뉴에서 라이브러리에 의존하는 프로젝트를 선택하고
  4. “종속”에있는 라이브러리 옆의 상자를 선택했습니다.

이를 통해 라이브러리 프로젝트가 먼저 빌드됩니다.


답변

먼저 프로젝트에서 생성 된 정보가 손상되지 않았는지 확인합니다. 솔루션을 정리하고 다시 빌드하십시오.

그래도 도움이되지 않으면 디자이너 문제에 대한 과거의 일 중 하나는 Windows Forms 프로젝트를 연 다음 다시 닫는 것입니다. 그러나 이것은 약간의 치킨 내장이기 때문에 숨을 참지 마십시오.


답변

내가 겪은 까다로운 상황은 다음과 같습니다. 프로젝트 1은 Microsoft.Bcl.Async패키지가 설치된 4.0 전체 프레임 워크를 대상으로합니다 . 프로젝트 2는 4.0 전체 프레임 워크를 대상으로하지만 프로젝트 1 클래스를 참조 할 때는 컴파일되지 않습니다.

두 번째 프로젝트에 Async NuGet 패키지를 설치하면 정상적으로 컴파일되었습니다.


답변

필자의 경우 VisualStudio의 참조에는 삼각형과 느낌표가 있으며이 이미지는

그런 다음 마우스 오른쪽 단추로 제거하고 dll 참조를 다시 올바르게 추가하면 문제가 해결되었습니다.