메타 데이터 파일… 프로젝트를 빌드 할 때 오류를 찾을 수 없습니다.


98

Visual Studio 2008을 시작할 때마다 프로젝트를 처음 실행하려고하면 오류 CS0006 The metadata file ... could not found. 전체 솔루션을 다시 빌드하면 작동합니다.

솔루션에 대한 몇 가지 정보 :

  • 디버그 모드에서 빌드 중이며 Visual Studio가 릴리스 폴더에서 dll : s를 찾지 못한다고 불평합니다.

  • Visual Studio가 불평하는 프로젝트는 솔루션의 다른 많은 프로젝트에서 사용됩니다.

  • 모든 프로젝트의 기본 출력 경로를 각각 ...... \ build \ debug \ ProjectName 및 ...... \ build \ release \ ProjectName으로 변경했습니다. (단지 하나의 디렉토리에 모든 빌드 파일을 가져 오기 위해)

  • 다른 솔루션과 동일한 문제가 있습니다.

  • 솔루션은 처음부터 만들어졌습니다.

  • 솔루션에는 9 개의 프로젝트가 있습니다. dotnet 3.5를 사용하는 1 개의 WPF 및 8 개의 클래스 라이브러리.

이 문제의 원인에 대한 아이디어가 있습니까?


답변:


133

"메타 데이터를 찾을 수 없습니다"라는 비슷한 문제가 발생했습니다. 솔루션 속성에서 각 프로젝트의 빌드 / 구성 관리자 에 "빌드"확인란이 표시되어 있는지 확인 합니다.


16
찾을 수없는 사용자를 위해 빌드 / 구성 관리자는 빌드 메뉴-> 구성 관리자 메뉴 항목을 참조합니다.
John Kurlak

4
방금이 문제가 발생했는데 그 이유는 참조 된 프로젝트가 성공적으로 빌드되지 않는 또 다른 오류였습니다. 이것은 깨끗한 체크 아웃에 있었으므로 이전의 성공적인 빌드에서 dll 파일이 존재하지 않았습니다. 오류를 수정하고 참조 된 프로젝트가 올바르게 빌드되는지 확인하십시오.
Moulde 2013 년

9
위의 Nick이 언급했듯이 때때로 이것조차도 도움이되지 않습니다. 이 경우 VS를 닫고 다시 시작하는 것이 항상 저에게 효과적이었습니다. YMMV.
philofinfinitejest

3
문제를 해결하지 못했습니다. VS를 다시 시작했지만 문제가 해결되지 않았습니다.
Shimmy Weitzhandler 2013 년

26

이는 일반적으로 오류를 발생시키는 솔루션과 다른 솔루션에서 참조되는 프로젝트로 인해 발생합니다. 다른 솔루션을 정리하거나 코드를 분기하면이 오류가 나타날 가능성이 큽니다. 해결책은 "메타 데이터를 찾을 수 없음"오류 목록을 아래로 스크롤하고 프로젝트에 대한 참조를 보는 것입니다. 9/10 번,이 솔루션에없는 프로젝트에 대한 끊어진 참조가 표시됩니다. 프로젝트를 추가하여 참조 오류를 수정하고 다시 빌드하십시오. 그것은 그것을 고쳐야합니다.

(나는 오늘 이것을 만났고 과거에 있었고 이것은 항상 작동했습니다)


내 솔루션에있는 프로젝트 만 불평합니다.
The Muffin Man

7

나는이 문제가 있었지만 도움이되는지 확실하지 않지만 두 가지 다른 솔루션에서 참조하는 동일한 프로젝트의 두 가지 버전이 있기 때문에 발생했습니다. 올바른 프로젝트에 대한 참조를 사용하여 솔루션을 빌드 할 때 두 번째 솔루션이 잘 빌드되지만 첫 번째 솔루션을 정리하고 두 번째 솔루션을 빌드하려고하면 이러한 dll 참조 오류 메시지와 함께 실패합니다.

나를위한 해결책은 실수로 중복 된 동일한 이름을 가진 두 개의 프로젝트가 있다는 것을 알아 내고 이전 잘못된 프로젝트에 대한 참조를 제거하고 새 프로젝트에 대한 참조를 추가하는 것입니다.

어쨌든 이러한 메시지는 약간의 붉은 청어처럼 보입니다. 빌드 출력을 확인하고 빌드에 실패한 첫 번째 프로젝트를 찾고 해당 프로젝트에 대한 참조를 매우 신중하게 확인합니다.


1
이 메시지의 부정확성에 관한 메모는 +1합니다. 솔루션에서 참조 된 어셈블리 경로가 손상 되었기 때문에이 문제가 발생했습니다. 그것들을 읽고 다시 컴파일하면 문제가 해결되었습니다.
E. Rodriguez

6

확인해야 할 또 다른 사항은 경로 길이입니다. 이로 인해 메타 데이터 파일을 찾을 수없고 컴파일 오류가 발생합니다. 방금 폴더 이름을 더 짧은 경로와 voilá, 인식되지 않고 검은 색으로 유지되는 클래스로 변경하고 이름 만 변경하면 파란색으로 바뀝니다. 폴더.


5

저에게는 다른 프로젝트에서 참조 된 프로젝트가있었습니다. 솔루션 탐색기 창의 참조 목록에서 깨진 것으로 표시되지 않았지만 어쨌든 제거하고 읽었습니다. 이제 잘 빌드됩니다!


실제로 모든 참조를 제거하고 다시 추가했습니다.

3

VS2012에서이 모든 단계를 거쳤지만 솔루션 전체를 빌드 할 때이 문제가 계속 발생했습니다 (개별 프로젝트는 오류없이 잘 빌드되었습니다).

Solution Explorer에서 솔루션을 마우스 오른쪽 버튼으로 클릭하고 "Build Order"를 선택하면 VS가 솔루션을 다시 빌드하는 데 사용하는 순서를 볼 수 있습니다. 엉망진창 일 가능성이 높습니다.

종속성 탭을 클릭하고 솔루션의 다른 프로젝트에 종속 된 프로젝트를 선택하고 종속 된 프로젝트를 확인하여 빌드 순서를 수정할 수 있습니다. 일단 괜찮아지고 솔루션을 다시 빌드하면 시작해야합니다.


2

내가 과거에 VS2005와 VS2008에서이 문제를 해결 한 방법은 모든 종속성이 정확하고 참조가 dll이 아닌 프로젝트를 가리키는 지 확인하는 것입니다. 그런 다음 각 프로젝트를 진행하여 종속성 순서대로 수동으로 빌드하십시오. 마지막 빌드가 빌드되면 전체 솔루션 빌드를 실행할 수 있습니다.

이 답변은 질문이 15 개월 이상 지난 것을 알고 있으므로 다른 사람들이 나중에 참조 할 수 있도록하기위한 것입니다.

건배


2

몇 가지 말씀 드리고 싶은 점이 있습니다.

MSBuild에서 빌드 파일로 솔루션 파일을 사용하는 경우 빌드하려는 순서, 즉 프로젝트의 상호 종속성 순서에 따라 프로젝트를 솔루션 파일에 추가해야합니다. 다른 프로젝트가 의존하는 솔루션에 프로젝트가 있지만 참조가 "프로젝트 참조"가 아닌 "참조"로 추가 된 경우 이는 매우 중요합니다.

전염병처럼 피해야하지만 그렇게해야하는 경우에는 적어도 종속 프로젝트가 솔루션 파일의 앞부분에 나타나는지 확인해야합니다.

Visual Studio가 빌드 순서를 생성하는 방식은 MSBuild가 수행하는 방식과 정확히 동일하지 않습니다. 이는 MSBuild가 주로 프로젝트 파일에 의존하여 종속성이 무엇인지 알려주는 반면 Visual Studio는 이러한 종속성을 soltuion 파일에 저장할 수도 있기 때문입니다. 따라서 Visual Studio가 솔루션을 완벽하게 빌드하지만 MSBuild가이를 수행 할 수없는 상황을 볼 수 있습니다.

솔루션 파일에 프로젝트가 표시되는 순서와 솔루션 파일의 웹 사이트 프로젝트에있는 ProjectReferences 요소에 프로젝트가 나열되는 순서를 직접 조정해야하는 몇 가지 경우가 있습니다.

위의 정보가 도움이 되었기를 바랍니다.


2

예를 들어 LinqtoSQL 데이터 컨텍스트를 사용하고 .designer.cs 파일이 누락 된 경우 메타 데이터 파일을 찾을 수 없음 오류가 발생합니다.

designer.cs 파일을 다시 만드는 것은 쉽습니다.

xml보기를 사용하여 dbml을 엽니 다. 빈 줄을 추가 한 다음 제거하고 저장합니다. 그러면 designer.cs 파일이 다시 생성됩니다.

일부 상황에서 데이터 컨텍스트의 코드 숨김 내에 코드가있는 경우이 해결 방법이 작동하지 않습니다. 이 경우 뒤에있는 코드에서 코드를 꺼내 메모장이나 다른 곳에 넣으십시오. DC에서 라인을 추가 한 다음 제거하고 저장하는 트릭을 수행하십시오. 이제 코드를 다시 넣고 저장하십시오.


2

SVN에서 프로젝트를 업데이트 할 때마다 비슷한 문제가 발생합니다.
ASP.NET을위한 또 다른 솔루션 :

  1. IDE를 닫습니다.
  2. 에서 파일을 삭제합니다 C:\WINDOWS\microsoft.net\framework\v…\Temporary ASP.NET File\.

1

나는 또한이 오류가 발생했으며 원인은 프로젝트가 자체를 참조하고 있기 때문입니다. 어떻게 된 건지 모르겠지만 참조를 제거하고 짜잔


1

먼저 각 프로젝트의 빌드-> 구성 관리자에 "빌드"확인란이 표시되어 있는지 확인합니다.

빌드-> 구성 관리자 메뉴에서 이미 모든 프로젝트를 선택하고 VS 트릭을 다시 시작해도 해당 파일의 참조 (dll 또는 cs 일 수 있음)를 찾아야하는 경우 프로젝트를 수행하고 해당 참조를 수동으로 삭제하십시오. 해당 파일 / 참조는 노란색 아이콘으로 표시되어야합니다. 이 오류는 조사해야 할 솔루션 프로젝트를 확실히 안내합니다.

이 오류의 원인은 Windows 탐색기에서 수동으로 파일을 삭제했고 VS가 참조를 업데이트하지 않았고 더 이상 존재하지 않는 파일을 찾으려고하기 때문입니다!


1

제 경우에는 솔루션 중 하나가 컴퓨터 (VBIDE)에없는 것을 참조하고 있다는 사실을 알게되었습니다. 문제가되는 참조를 제거하면 나머지 프로젝트가 올바르게 빌드되었습니다. 누군가에게 도움이되기를 바랍니다.

그리고 또 다른 상황에서는 한 프로젝트에서 다른 프로젝트로 일부 코드를 옮겼는데 그 코드는 Json.net을 참조하고있었습니다. 수동으로 Json.net에 대한 참조를 추가했지만 문제가 발생했습니다. NuGet을 통해 Json.net을 설치하여 문제를 해결했으며 문제가 해결되었습니다. 누군가에게 도움이되기를 바랍니다.


0

같은 일이 일어났습니다. 동일한 라이브러리 프로젝트 (.net 3.5)를 참조하는 여러 솔루션이 있습니다. 하나는 디버그 / 일반 구성으로 빌드되고 다른 하나는 다른 컴파일러 지시문 (sqlite / local 모드)을 사용하여 빌드되었을 때 이런 일이 발생하는 것을 알았습니다. 동일한 지시문으로 두 프로젝트를 빌드하기 만하면 괜찮습니다.


0

솔루션에 새 프로젝트를 추가 한 경우 이것이 빌드 목록에 있는지 확인합니다 (구성 관리자 참조).


0

Matlab에서 생성 한 dll 파일을 포함하고 싶을 때 저장 문제가 발생했습니다. 그리고 마침내 내가 생각하는 인증서를 의미하는 .ctf 파일과 .dll 파일과 함께 .dll의 적절한 작동에 필요한 .netmodule을 복사하여 해결했습니다. 그리고 실제로 작동했습니다! 따라서 내 제안은 .dll에 다른 파일이 필요한지 확인하는 것입니다.


0

Windows 7 Ultimate 32 Visual Studio 2008 SQL Server v2005

동일한 오류가 발생했습니다. 그리고 프로젝트 참조를 제거하고 다시 추가하기로 결정했습니다. 참조 된 각 프로젝트의 데이터베이스 참조가 비어 있기 때문에 다시 추가 할 수 없습니다.

데이터베이스 참조를 올바른 설정으로 재설정하면 더 이상 문제없이 빌드 할 수있었습니다. 또한 VSS에서 소스 코드를 분기 한 후이 프로젝트를 다시 빌드하려는 첫 번째 시도였습니다.

행운을 빕니다


0

이 오류는 프로젝트에서 어셈블리 이름이 변경되었지만 참조가 업데이트되지 않은 프로젝트 종속성 중 하나로 인해 발생했습니다. 따라서 참조를 업데이트하거나 어셈블리 이름을 다시 변경하면 문제가 해결됩니다.


0

EE-내 경우에는 Entity 프레임 워크가있는 프로젝트에 문제가있었습니다. 다이어그램을 열고 테이블 2cm를 드래그하고 저장하면 VS가 DB에 대한 모든 링크를 업데이트합니다 ...이 프로젝트를 빌드하고 솔루션을 빌드합니다. , Buildssss.


0

나를 고친 유일한 방법은 (관리자 계정으로 VS2010을 실행하지 않기 때문에) 환경 변수 VS120COMNTOOLS를 시스템 변수에서 사용자 변수로 수동으로 이동하는 것입니다.


0

소스 제어에 더 이상 존재하지 않는 모든 소스 파일의 항목과 .csproj 파일의 파일 시스템을 삭제하는 것이 저에게 효과적이었습니다.


자세한 접근 방식 :

글쎄, 내 다음 답변은 모든 솔루션의 요약뿐만 아니라 그 이상을 제공합니다.

섹션 1):

일반적인 솔루션 :

이런 종류의 오류 ( '메타 데이터 파일을 찾을 수 없음')와 '소스 파일을 열 수 없음 ('지정되지 않은 오류 ')'이라는 오류 1 개가 있습니다.

'메타 데이터 파일을 찾을 수 없습니다'오류를 제거하려고했습니다. 이를 위해 많은 게시물, 블로그 등을 읽고 이러한 솔루션이 효과적 일 수 있음을 발견했습니다 (여기에서 요약).

  1. VS를 다시 시작하고 다시 빌드하십시오.

  2. '솔루션 탐색기'로 이동합니다 . 솔루션을 마우스 오른쪽 버튼으로 클릭하십시오. 속성으로 이동합니다 . '구성 관리자'로 이동합니다 . 'Build' 아래의 체크 박스가 체크되어 있는지 확인하세요 . 일부 또는 전부가 선택 취소 된 경우 확인하고 다시 빌드하십시오.

  3. 위의 해결 방법이 작동하지 않으면 위의 2 단계에서 언급 한 순서를 따르고 모든 확인란이 선택되어 있어도 선택 취소하고 다시 확인한 다음 다시 빌드하십시오.

  4. 빌드 순서 및 프로젝트 종속성 :

    '솔루션 탐색기'로 이동합니다 . 솔루션을 마우스 오른쪽 버튼으로 클릭하십시오. '프로젝트 종속성 ...'으로 이동합니다 . 'Dependencies''Build Order' 탭 2 개가 표시됩니다 . 이 빌드 순서는 솔루션이 빌드되는 순서입니다. 프로젝트 종속성 및 빌드 순서를 확인하여 다른 프로젝트 (예 : 'project1')에 종속 된 일부 프로젝트 (예 : 'project1')가 해당 프로젝트 (project2)보다 먼저 빌드를 시도하는지 확인합니다. 이것이 오류의 원인 일 수 있습니다.

  5. 누락 된 .dll의 경로를 확인하십시오.

    누락 된 .dll의 경로를 확인하십시오. 경로에 공백이나 다른 잘못된 경로 문자가 포함 된 경우 해당 문자를 제거하고 다시 빌드하십시오.

    이것이 원인이라면 빌드 순서를 조정하십시오.


섹션 2):

내 특별한 경우 :

VS를 몇 번 다시 시작하여 다양한 순열과 조합으로 위의 모든 단계를 시도했습니다. 그러나 그것은 나를 돕지 않았습니다.

그래서 나는 다른 오류를 제거하기로 결정했습니다 ( '소스 파일을 열 수 없습니다 ('지정되지 않은 오류 ')').

나는 블로그를 발견했다 : http://www.anujvarma.com/tfs-errorsource-file-could-not-be-opened-unspecified-error/#comment-1539

나는 그 블로그에 언급 된 단계를 시도했고 '소스 파일을 열 수 없음 ('지정되지 않은 오류 ')'오류를 제거했고 놀랍게도 다른 오류 ( '메타 데이터 파일을 찾을 수 없음') 도 제거했습니다.


섹션 (3) :

이야기의 교훈:

오류를 제거하려면 위의 섹션 (1) (및 기타 솔루션)에서 언급 한 모든 솔루션을 시도하십시오. 위의 섹션 (2)에서 언급 한 블로그에 따라 아무것도 작동 하지 않으면 .csproj 파일에서 더 이상 소스 제어 및 파일 시스템에 존재하지 않는 모든 소스 파일의 항목을 삭제하십시오 .


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