[C#] 메타 데이터 파일 ‘.dll’을 찾을 수 없습니다

WPF, C # 3.0 프로젝트를 진행 중이며이 오류가 발생합니다.

Error 1 Metadata file
'WORK=- \Tools\VersionManagementSystem\BusinessLogicLayer\bin\Debug
\BusinessLogicLayer.dll' could not be found C:\-=WORK=- \Tools
\VersionManagementSystem\VersionManagementSystem\CSC VersionManagementSystem

이것이 내 usercontrols를 참조하는 방법입니다.

xmlns:vms="clr-namespace:VersionManagementSystem"
<vms:SignOffProjectListing Margin="5"/>

모든 실패한 빌드 후에 발생합니다. 솔루션을 컴파일 할 수있는 유일한 방법은 모든 사용자 컨트롤을 주석 처리하고 프로젝트를 다시 빌드 한 다음 usercontrol의 주석 처리를 제거하고 모든 것이 정상입니다.

빌드 순서 및 종속성 구성을 확인했습니다.

보시다시피 DLL 파일의 절대 경로가 잘린 것 같습니다 … 길이에 버그가 있음을 읽었습니다. 이것이 가능한 문제입니까?

매우 성가 시며 의견을 말하고, 작성하고, 주석 처리를 제거해야합니다.



답변

방금 같은 문제가있었습니다. Visual Studio가 참조중인 프로젝트를 작성하지 않습니다.

서면 지침서 :

  1. 솔루션을 마우스 오른쪽 단추로 클릭하고 특성을 클릭하십시오.
  2. 왼쪽에서 구성을 클릭하십시오.
  3. 찾을 수없는 프로젝트에 대한 “빌드”아래의 확인란이 선택되어 있는지 확인하십시오. 이미 선택되어 있으면 선택을 취소하고 적용을 누른 다음 상자를 다시 선택하십시오.
  4. (선택 사항) 솔루션 속성에서 릴리스 및 디버그 모드 모두에 대해 수행해야합니다.

화면 캡처 지침 :

  • 그들은 그림이 천 단어의 가치가 있다고 말합니다. 확대하려면 GIF를 클릭하십시오.

GIF 지침


답변

이것은 여전히 ​​최신 버전의 Visual Studio에서 발생할 수 있습니다 (Visual Studio 2013에서 방금 발생했습니다).

또 다른 시도는 Visual Studio를 닫고 .suo파일 옆에있는 .sln파일 을 삭제하는 것입니다 . (다음에 Save allVisual Studio를 종료 할 때 다시 생성됩니다 ).

다른 컴퓨터의 솔루션에 새 프로젝트를 추가 한 다음 개정을 가져올 때이 문제가 발생했지만 .suo다른 경우에도 파일이 손상되어 매우 이상한 Visual Studio 동작이 발생할 수 있으므로 삭제하는 중 하나입니다. 내가 항상 시도하는 것들.

.suo파일 을 삭제 하면 솔루션의 시작 프로젝트가 재설정됩니다.

.suo파일 에 대한 자세한 내용 은 여기에 있습니다 .


답변

제안 된 답변이 효과가 없었습니다. 오류는 다른 문제에 대한 미끼입니다.

나는 약간 다른 버전의 .NET을 대상으로한다는 것을 알았으며 컴파일러에 의해 경고로 표시되었지만 빌드가 실패했습니다. 이것은 경고가 아니라 오류로 표시되어야합니다.


답변

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

섹션 1):

일반적인 해결책 :

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

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

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

  2. ‘솔루션 탐색기’로 이동하십시오 . 솔루션을 마우스 오른쪽 버튼으로 클릭하십시오. 속성으로 이동하십시오 . ‘구성 관리자’로 이동하십시오 . ‘빌드’ 아래의 확인란이 선택되어 있는지 확인하십시오 . 일부 또는 전부가 선택 해제 된 경우 점검 한 후 다시 빌드하십시오.

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

  4. 주문 및 프로젝트 종속성 빌드 :

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

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

    누락 된 .dll의 경로를 확인하십시오. 경로에 공백 또는 유효하지 않은 다른 경로 문자가 포함 된 경우 경로를 제거한 후 다시 빌드하십시오.

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


섹션 2):

내 특별한 경우 :

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

그래서, 내가 겪고있는 다른 오류 ( ‘소스 파일을 열 수 없습니다 (‘지정되지 않은 오류 ‘)’)를 제거하기로 결정했습니다.

블로그 게시물을 보았습니다 : TFS 오류 – 소스 파일을 열 수 없습니다 ( ‘지정되지 않은 오류’)

해당 블로그 게시물에 언급 된 단계를 시도한 결과 ‘소스 파일을 열 수 없습니다 (‘지정되지 않은 오류 ‘)’오류 가 제거되었으며 놀랍게도 다른 오류 ( ‘메타 데이터 파일을 찾을 수 없음’)를 제거 했습니다. 잘.


섹션 (3) :

이야기의 교훈:

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


답변

제 경우에는 .NET Framework 버전 불일치로 인해 발생했습니다.

하나의 프로젝트는 3.5이고 다른 하나는 참조 프로젝트입니다. 4.6.1.


답변

Visual Studio 2013을 닫았다가 다시 열면 나에게 도움이되었습니다!


답변

글쎄, 이전 답변에서 아무것도 효과가 없었으므로 개발자로서 우리가 실제로 무슨 일이 일어나고 있는지 이해하려고 노력할 때 클릭하고 바라고있는 이유에 대해 생각하게되었습니다.

이 잘못된 메타 데이터 파일 참조가 어딘가에 있어야한다는 것이 분명했습니다.

.csproj 파일을 빠르게 검색하면 유죄 선이 표시됩니다. 오래된 잘못된 파일 경로에 매달려있는 것처럼 보이는 <itemGroup>이라는 섹션이 있습니다.

<ItemGroup>
    <ProjectReference Include="..\..\..\MySiteOld\MySite.Entities\MySite.Entities.csproj">
        <Project>{5b0a347e-cd9a-4746-a3b6-99d6d010a6c2}</Project>
        <Name>Beeyp.Entities</Name>
    </ProjectReference>
...

그래서 간단한 수정은 실제로 :

  1. .csproj 파일을 백업하십시오.
  2. .csproj 파일에서 잘못된 경로를 찾아서 적절하게 이름을 바꾸십시오.

제발 당신이 바이올린하기 전에 반드시 백업 이전 .csproj합니다 .