유형 또는 네임 스페이스 이름이 존재하지 않습니다.


318

Visual Studio 2010으로 빌드 된 WCF 데이터 서비스 프로젝트가 있는데 제대로 작동했습니다. 갑자기 더 이상 컴파일되지 않았습니다. 그것은 나에게 다음과 같은 메시지를 주었다.

오류 7 형식 또는 네임 스페이스 이름 'Services'가 네임 스페이스 'System.Data'에 존재하지 않습니다 (조립품 참조가 누락되어 있습니까?) C : \ U ... s \ Visual Studio 2010 \ Projects ... \ DataService. CS ...

오류 8 형식 또는 네임 스페이스 이름 'Linq'가 네임 스페이스 'System'에 존재하지 않습니다 (어셈블리 참조가 누락 되었습니까?) DependencyResolver.cs 3 14

오류 10 형식 또는 네임 스페이스 이름 'Web'이 네임 스페이스 'System.ServiceModel'에 없습니다 (조립품 참조가 누락 되었습니까?)

오류 12 형식 또는 네임 스페이스 이름 'DataService'를 찾을 수 없습니다 (사용 지시문 또는 어셈블리 참조가 누락 되었습니까?)

어떻게 고칠 수 있습니까?


4
추가 한 후에도 오류 메시지는 계속 유지됩니다
Attilah

18
이것은 나에게 유용했다. 왜 닫혔는지 모르겠습니다.
Gmail 사용자

2
답변은 도움이되었지만 원래 질문은 매우 개방적이며 답변이 그렇더라도 다른 사람과 관련이 없을 가능성이 있기 때문입니다.
WongKongPhooey

48
야 봐봐! SO에 대한 유용한 질문. 아, 잠깐만 요, 주제가 맞지 않습니다. 그러나 많은 투표와 더 많은 투표를 가진 답변이 있습니다. 여기서 확실히 "끄기"가 있지만이 질문은 아닙니다.
Jagd

3
이 문제를 해결하기 위해 투표 한 사람들은 질문에서 매우 구체적인 오류 ( "이름 공간 또는 네임 스페이스 이름이 네임 스페이스에 존재하지 않습니다")를 어떻게 그리워 했습니까? 나는 비슷한 문제가 있었고 그 오류 메시지를 Google에 표시 했으며이 질문이 최고의 결과였습니다. 따라서 질문은 전혀 모호하지 않습니다.
Simon Tewsi

답변:


619

나는 같은 문제가 있었고 모든 프로젝트의 "대상 프레임 워크"를 동일하게 설정해야했다. 그런 다음 괜찮 았습니다. 프로젝트 메뉴에서 ProjectName 속성을 클릭하십시오. 컴파일 탭을 클릭하십시오. 고급 컴파일 옵션을 클릭하십시오. 대상 프레임 워크에서 원하는 프레임 워크를 선택하십시오.


13
솔루션 탐색기에서 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택하여 "Target Framework"를 설정했습니다. 기본 응용 프로그램 탭에 대상 프레임 워크가 표시되어야합니다.
Cookie

4
@jaminator 일부 경우에 솔루션입니다. 적어도 내 꺼야 어떤 이유로, 내 프로젝트는 동일한 솔루션에서 존재하는 네임 스페이스를 수락하지 않았습니다. 문제는 콘솔 응용 프로그램이 클라이언트 프로필을 대상으로한다는 것입니다.
Amadiere

3
나에게도 효과가 있습니다. WPF 프로젝트 (.NET 4 Client Profile) 및 클래스 라이브러리 프로젝트 (.NET 4) 참조를 추가 할 때 발생했습니다. 무리 감사 !!
Tamas Ionut

58
+1합니다. 끔찍한 오해의 소지가있는 오류 메시지. 아마 그것을 알아 내려고 노력하는 시간을 절약 할 수 있습니다. Microsoft는 "BLAH가 호환되지 않는 버전이기 때문에 네임 스페이스 BLAH를 가져올 수 없습니다"에 대해서는 어떻습니까?
Gerald Davis

3
프로젝트의 대상 프레임 워크를 변경할 수없는 경우에 대한 해결 방법이 있습니까?
Raj123

43

System.Linq 에 인식되지 않는 문제가 있습니다. using문이 등, 구불 구불 한 나는 그것이 목표 DOTNET 3.5에 내 웹 사이트를 변경하는 것이었다 해결 방법 빨간색했다, 다음 (내 경우에는 4.0) 원래 타겟 프레임 워크로 전환합니다.


2
나도 일 했어! 그러나 나는 그것을 두 번해야했다.
nicholeous

동일한 앱에 대해 서로 다른 대상 프레임 워크의 일부 web.config 파일을 수동으로 병합 한 후 web.config가 작동을 멈추고 500 내부 서버 오류가 발생했습니다. 설명한대로 재설정 한 후 web.config에서 Visual Studio 2012에 의해 일부 이전 설정이 자동으로 제거 된 후 앱이 다시 작동했습니다.
humbads 2019

비슷한 문제가 System.Linq
있었지만

3
감사합니다. 내 기능과 참조가 갑자기 작동하지 않는 이유를 알아 내려고 한 시간을 낭비한 후에도 도움이 되었으므로이 주제가 닫히는 것은 우스운 일입니다. 나를 위해 실패한 참조는 system.management.automation.dll
Bbb

그것은 정말로 마술이었다. 설정을 변경해도 즉시 적용되지 않는 새로운 Mobile Honor 8X와 같습니다. 제대로 작동하려면 여러 번 앞뒤로 전환해야합니다.
Harish NInge Gowda

28

클래스 이름 ( MyWorld.MyWorld = Namespace.ClassName) 과 동일한 네임 스페이스 이름을 사용했기 때문에 이것이 발생했습니다 .

네임 스페이스를 클래스와 이름이 다른 이름으로 변경하면 컴파일됩니다.

출처


6
이를 해결하기 위해 접두사 Windows.Whateverglobal::
joshcomley

20

LINQ to SQL 사용하려고 할 때 ASP.NET MVC 사이트 와 동일한 문제에 직면했습니다 . 나는 다음과 같이 문제를 해결했다.

솔루션 탐색기-> 참조-> System.Data.Linq를 마우스 오른쪽 버튼으로 클릭-> 로컬 복사 (참)


17

대상 프레임 워크의 .NET 버전이 동일한 지 확인하십시오. 나는 같은 문제가 있었고 클래스 .NET은 3.5 였고 웹 솔루션은 4.5였습니다. 나는 그것들을 동기화 한 다음 효과가 있었다 :)


16
이것은 단지 몇 달 전에 게시 된 이전 답변 에서 제시 되고 설명 된 점을 반복합니다
gnat

12

나는 같은 문제 가 있었고 성공하지 않고 위의 모든 것을 시도했지만 그것이 무엇인지 알아 냈습니다.

내 프로젝트 중 하나에 "System"이라는 폴더를 만든 다음 그 안에 클래스를 만들었습니다. 문제는 "MyProject.System"의 네임 스페이스에 있더라도 .cs 파일을 만들 때 "System"이라는 네임 스페이스를 가지고있는 것으로 보입니다.

되돌아 보면 이것이 왜 문제를 일으키는 지 이해할 수 있습니다. 오류 메시지가 처음에 문제와 관련이없는 것처럼 보이기 때문에 처음에는 정말 충격을 받았습니다.


1
참고 로이 문제도있었습니다. 도구에 더 설명적인 오류 메시지가 있으면 좋을 것입니다.
Nick

3
나는 MSDN abput에 뭔가를 게시했지만 MS는 버그가 아니라고 말했다. 나는 그것에 대해 논쟁하지 않을 것이지만 그것이 그들이 어떻게 문제를 일으킬 수 있는지 이해하기를 바 랐을 것이다.
GrandMasterFlush

1
그건 속임수입니다 ...
Jitka Darbie Hübnerová

12

System.Data.SQLite와 동일한 문제가 발생했습니다. 문제의 원인 은 사용한 dll이 프로젝트와 동일한 .NET 버전을 가져야한다는 것입니다.

예를 들어 .NET 4.5 용 SQLite를 사용한 경우 플랫폼 대상도 .NET 4.5 여야합니다.

프로젝트> (프로젝트 이름) 속성> 빌드로 플랫폼 대상을 찾을 수 있습니다.


1
이것은 내가 방금 가지고있는 문제를 해결했습니다. 오류 메시지는 어떤 DLL이 문제인지 알려주는 것 이상으로 도움이되지 않습니다.
PointlessSpike

7

내 경우에는 내가 만든 클래스에 기존 클래스를 방해하는 네임 스페이스가 있기 때문에 문제가 발생했습니다. 새로운 클래스 A는 (실수로) 네임 스페이스 zz.yy.xx를 가졌습니다. 다른 네임 스페이스 yy.xx의 객체에 대한 참조는 클래스 A 또는 네임 스페이스가 zz 인 다른 클래스에서 컴파일되지 않았습니다.

클래스 A의 네임 스페이스를 yy.xx로 변경하여 작동해야했습니다.


5

링크 된 파일을 가진 사람의 경우 :이 문제가 있었고 silverlight를 사용하고 있었고이 오류를 발생시키는 문제가 된 파일은 링크 된 파일이었습니다.

컴파일러의 오류로 인해 파일이 존재하는 프로젝트에서 오류가 발생했다는 메시지가 표시되었습니다. 결국 해당 프로젝트에 오류가없고 연결된 파일이 포함 된 프로젝트에서 오류가 발생했습니다. 해당 프로젝트에 참조가 없습니다.


Windows 10에서 Visual Studio 2013으로 프로젝트를 테스트 할 때 System.Management.Automation을 사용하는 .NET 4 프로젝트에서이 문제가 발생했습니다. 프로젝트를 .NET 4.5.1로 업그레이드하면 문제가 해결되었습니다.
Malcolm McCaffery 2018 년

2

Visual Studio의 Git 통합을 사용하여 프로젝트를 관리하는 동안이 문제가 발생했습니다 . 어떤 이유로 Windows Phone 8 프로젝트는 x86을 대상으로 할 때 제대로 컴파일되지만 ARM을 대상으로 설정하면 Microsoft 네임 스페이스에 "Advertising"이 존재하지 않는다는 오류와 함께 컴파일에 실패합니다.

Microsoft.Advertising. *. dll 참조를 제거하고 다시 추가하여 문제를 해결했습니다.


1

내 경우에는 프로젝트에 아무런 변화가 없었으며 컴파일이 중단되었고 "유형 또는 네임 스페이스 이름 XXX가 존재하지 않습니다."라는 불만이있는 클래스 자체에서 해당 XXX 네임 스페이스 / 클래스에 대한 인텔리전스가 제대로 작동합니다. 문제는 참으로 언급되었습니다!

재현 단계 :

  1. 솔루션에는 ProjectA, ProjectB가 있습니다. ProjectA는 타사 log4net을 참조하며로 표시되어 Copy local: true있습니다. ProjectB는 ProjectA를 참조하며 log4net에 대한 참조는 없습니다. 솔루션이 잘 컴파일됩니다.

  2. ProjectA에서 log4net의 참조 속성을로 변경하십시오 Copy local: false.

  3. bin 및 obj 폴더를 청소하십시오.
  4. 컴파일 할 때 ProjectA는 컴파일되지만 ProjectB는 ProjectA 네임 스페이스를 찾지 못한다고 불평합니다.

This is because ProjectB bin 폴더에 타사 라이브러리가 없습니다 (log4net in my case)!

이 경우 해결책은 다음과 같습니다.

  1. 타사 라이브러리 참조로 설정되어 있는지 확인 있는지 Copy local: true 또는
  2. 참조 경로 아래의 프로젝트 속성에서 이러한 라이브러리에 경로를 추가하십시오.

1

Microsoft.CommerceServer.Runtime.Orders를 참조하고 있으며이 오류가 발생했습니다. 이 프로젝트는 오래되었으며 대상 프레임 워크 .NET 2.0이 있습니다. 출력 에서이 오류가 발생했습니다.

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3268: The primary reference "Microsoft.CommerceServer.Runtime" could not be resolved because it has an indirect dependency on the framework assembly "System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" which could not be resolved in the currently targeted framework. ".NETFramework,Version=v2.0". To resolve this problem, either remove the reference "Microsoft.CommerceServer.Runtime" or retarget your application to a framework version which contains "System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"

대상 프레임 워크를 .NET 4로 변경하고 빌드했습니다.


1

대상 프레임 워크가 동일한 지 확인하고 VS2010의 WPF 클래스 라이브러리를 처리하는 등 다른 모든 방법이 실패하면 Visual Studio를 다시 시작하면됩니다. 그것은 나를 위해 그것을했다.


내 경우 vs2010에서 dll 참조에 오류가 있으며 dll 참조를 읽었으며 훌륭해 보이지만 빌드 후 type namespace error발생합니다. 그리고 Visual Studio를 다시 시작한 다음 다시 시작한 후 원래 dll 오류 표시가 다시 표시되고 다시 읽은 후 성공합니다.
yu yang Jian

0

같은 오류가 발생했습니다. 프로젝트에 잘못된 어셈블리 이름이 있음을 발견 한 후 (다른 프로젝트에서 파일을 복사하고 네임 스페이스가 약간 혼란스러워 짐) 다시 변경 한 후 프로젝트가 멋지게 컴파일되었습니다.


비록 그것이 downvoted, 이것은 내 문제였다! 감사.
SteveCav

0

내 솔루션의 다른 프로젝트에서 실수로 클래스를 복제했기 때문에 매우 유사한 오류 메시지가 나타납니다. 복제본을 삭제하면 문제가 해결되었습니다.


0

최근에 시스템 복원을 수행해야했기 때문에 복원 후 작업했던 파일이 여러 개 변경되거나 사라졌습니다. 그중 일부는 DLL 파일이었습니다. 소스 컨트롤을 사용하여 전체 프로젝트를 검색했지만 여전히 위와 비슷한 문제가있었습니다. DLL을 제거하고 오류를 수정하기 위해 읽어야 할 수도있는 이 답변 을 발견 했습니다 . 이것은 내 시나리오에서 그렇습니다.

를 제거 WebMatrix.WebData하고 읽는 것뿐만 아니라 WebMatrix.Data오류를 수정했습니다 The type or namespace name 'Data' does not exist in the namespace 'WebMatrix' ....


-3

소스 제어하에있는 경우 .refresh.dll 파일을 삭제하십시오. 그런 다음 다시 빌드하십시오. 작동해야합니다. 이것은 나를 위해 일했다

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