development

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

big-blog 2020. 3. 16. 08:22
반응형

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


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'를 찾을 수 없습니다 (사용 지시문 또는 어셈블리 참조가 누락 되었습니까?)

어떻게 고칠 수 있습니까?


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


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


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

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

출처


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

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


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


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

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

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


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

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

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


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

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


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

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


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

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


내 경우에는 프로젝트에 아무런 변화가 없었으며 컴파일이 중단되었고 "유형 또는 네임 스페이스 이름 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. 참조 경로 아래의 프로젝트 속성에서 이러한 라이브러리에 경로를 추가하십시오.

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로 변경하고 빌드했습니다.


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


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


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


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

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


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

참고 URL : https://stackoverflow.com/questions/5567945/type-or-namespace-name-does-not-exist

반응형