Visual Studio의 "정의로 이동"은 메타 데이터 만 표시됩니다.
Visual Studio 2008의 웹 프로젝트에서 작업하고 있습니다. F12를 누르거나 마우스 오른쪽 단추를 클릭하고 정의로 이동을 선택하면 대신 Visual Studio가 소스로 이동하는 메타 데이터 파일로 계속 이동합니다.
몇 가지 포인트 :
- 모든 소스 코드는 C #이며 VB.Net은 없습니다.
- 모든 프로젝트는 동일한 솔루션에 있습니다.
- 예, 모든 것이 프로젝트 참조입니다 (확인 및 재확인).
- Clean / Rebuild Solution 접근 방식을 시도했습니다 (Temp 디렉토리, Temporary ASP.NET Files 디렉토리를 지울 때까지).
다른 사람이 동작을 보거나 수정하는 방법을 알고 있습니까?
다른 개발자가 답을 찾았습니다. 문제가 특정 프로젝트는 원래 파일 참조로 추가 된 다음 프로젝트 참조로 제거 및 추가 프로젝트입니다. 그러나 Visual Studio는 웹 사이트의 csproj 파일에 둘 다 유지되어 문제가 발생했습니다. 그는 문제 프로젝트에 대한 파일 참조를 제거하기 위해 csproj 파일을 수동으로 편집하여 모두 수정했습니다.
참조를 프로젝트로 추가하지 않고 참조 추가 대화 상자의 찾아보기 탭을 사용하여 dll 또는 exe를 가리킬 때 발생합니다. 프로젝트 탭을 사용하여 추가하면 정의로 이동을 선택할 때 소스 코드로 직접 이동해야합니다.
그러나 ReSharper 를 설치 하면 찾아보기 탭을 사용하여 dll / exe에 대한 참조를 추가 한 경우에도 소스 코드로 이동합니다.
Resharper 설정해야하는 것처럼 보입니다. Resharper에서 활성화 할 때까지 Visual Studio에서 .NET Framework 소스 코드를 탐색하지 않습니다.
1. 솔루션을 닫습니다.
2.<name of the solution>솔루션의 <name of the solution>.sln 파일이 있는 폴더에서 숨겨진 .suo 파일을 삭제하십시오 .
3. 솔루션을 다.
4. 솔루션을 다시 빌드하십시오.
VS 2017 (현재 버전 15.3.4에 있음)을 사용하는 사람들에게 간단한 단계가 있습니다.
- Windows 탐색기에서 솔루션을 Visual Studio를 닫습니다.
- 탐색기 메뉴에서보기를 선택하고 "숨겨진 항목"확인란이 표시되어 있는지 확인하십시오
- 하위 폴더로 이동
.vs\[your solution name]\v15 .suo파일 삭제- VS를 다시 시작하고 솔루션을 빌드하십시오.
F12는 "메타 데이터에서"버전이 아닌 실제 소스 파일을 열었습니다.
Visual Studio는 프로젝트를 빌드하는 위치를 옮길 때 프로젝트가 아닌 메타 데이터로 이동하는 데 어려움을 겪습니다. 즉, 여러 가지 버전으로 테스트 할 수 있습니다.
참조를 삭제하고 즉시 다시 추가하면 모든 것이 정렬됩니다.
항상 작동이 작동합니다. 프로젝트 파일에서 참조 된 프로젝트 GUID가 참조하려는 프로젝트의 올바른 GUID인지 확인해야합니다. Visual Studio에서는 일부 상황에서 동기화하지 않을 수 없습니다. 텍스트 편집기를 사용하여 프로젝트 파일에서 프로젝트 GUID를 얻을 수 있습니다. 따라서 프로젝트 A가 프로젝트 B를 참조하는 경우 텍스트 편집기에서 프로젝트 B.csproj를 태그에서 프로젝트 GUID를 복사합니다. 그런 다음 텍스트 편집기에서 프로젝트 A.csproj를 올바른 GUID를 사용하고 있는지 확인하십시오. 이 경우 프로젝트 이름 "B"를 검색하십시오. 에 틀림 없습니다. 태그의 GUID를 올바른 교체하십시오. 저장하고 다시로드하십시오. 물론 프로젝트에 대한 파일 기반 참조가 제거 확인하십시오. 프로젝트 참조 만 원합니다.
나는 모든 VS 인스턴스를 죽이고, SUO를 삭제하고, sln을 시작하고 그것은 나를 위해 일했다 ...
참조 dll을 제거하고 빌드 (오류가 발생 함), 참조를 추가하고 (제거했다) 다시 빌드하십시오 ... 함수에서 F12가 작동해야합니다 (나를 일했습니다).
이 게시물에서 내 문제를 해결하는 방법을 알아 . 어쩌면 일부 사용자에게도 도움이 될 것입니다.
나는 다음 단계를 따.
- 솔루션을 닫습니다.
- 솔루션의 인텔리전스 데이터베이스 파일을 삭제하십시오. .ncb
- 솔루션을 찾으십시오.
- 솔루션을 다시 빌드하십시오.
(3 단계 또는 4 단계적으로 인텔리전스 데이터베이스 파일이 누락 된 경우 재생성 단계 생각합니다)
Intellisense, "정의로 이동"및 "모든 참조 찾기"가 다시 작동해야합니다.
필자의 경우 (Visual Studio Professional 2015 사용) XAML 디자이너를 사용 중지 할 때 F12가 작동을 멈습니다. 변경 사항을 되돌리고 Visual Studio를 다시 시작하자마자 F12가 다시 작동했습니다.
패턴을 여러 번 확인하여 확인한 후 게시했습니다. 그것이 누군가를 돕기를 바랍니다.
약속 :
"정의로 이동"또는 "신고로 이동"또는 "모든 참조 찾기"기능을 사용할 때 Visual Studio 2010 Ultimate에서 함수, #defines, 여기에 대한 참조를 반복적으로 찾을 수 있습니다. 이상하게도 Intellisense가 작동했습니다.
고치다 :
- Visual Studio 닫기
- 솔루션 .sdf 파일 삭제 (보존하려는 경우 이름 경향)
- Visual Studio를 다시 정렬 다
.sdf 파일은 솔루션의 포함 파일을 구문 분석하여 자동으로 다시 작성됩니다.
저에게는 GUID 솔루션이 작동하지 않았고 .ncb 파일을 찾을 수 없었습니다. (또는 내가 게으르고 충분히 세게 보이지는 않았지만 그것은 중요하지 않습니다.) Visual Studio를 다시 빌드하고 다시 시작하는 것도 도움이되지 않았습니다.
내가 한 일은 Visual Studio를 닫고 내 intellisense가 계속 연결하는 메타 데이터 파일의 상단에서 참조되는 .dll 및 .pdb를 삭제하는 것입니다. 제 경우에는 .dll을 삭제했으며 Utilities / bin / Release의 .pdb 파일입니다. (유틸리티는 문제가있는 .dll 프로젝트의 이름입니다.) 그런 다음 Visual Studio를 다시 시작하고 .dll을 다시 빌드 한 다음 전체 솔루션을 빌드했습니다. 더 이상 문제가 없습니다!
다른 원인을 찾았습니다. 웹 프로젝트를 4.0으로 업그레이드했지만 클래스 라이브러리는 2.0으로 유지했습니다. 그 시점에서 내 솔루션의 모든 클래스 라이브러리는 내 웹 프로젝트의 파일 참조로 취급되었습니다. 다른 사람을 도울 수 있습니다 ...
모든 제안 된 단계를 수행했지만 아무것도 변경되지 않은 다음
마지막으로 마우스 오른쪽 버튼을 클릭하고 참조 메뉴, 프로젝트 탭을 추가합니다.
- 단순히 참조 프로젝트를 선택 취소했습니다.
- 솔루션을 저장하십시오.
- 동일한 프로젝트를 선택하십시오.
- 솔루션을 다시 빌드하십시오.
문제가 분류되었습니다. 이것이 누군가에게 도움이되기를 바랍니다.
아래 단계가 저에게 효과적이었습니다.
- .csproj 파일로 이동
- 메모장에서 엽니 다. dll이 참조되는 줄로 이동합니다.
<Reference Include=""> 라인 삭제
<SpecificVersion>False</SpecificVersion> or <SpecificVersion>True</SpecificVersion>
먼저 Visual Studio에서 dll 파일을 삭제하고 솔루션 탐색기-> 웹 사이트-> 추가-> 참조에서 수동으로 다시 추가하고 IIS에서 32 비트 응용 프로그램을 활성화하면 문제가 해결되었습니다.
- VS에서 웹 사이트 메뉴를 클릭하십시오.
- 참조 추가 ...
- 대화 상자에서 프로젝트 탭을 클릭하십시오.
- ddl 선택
- 확인 버튼을 클릭하십시오
제 경우에는 최근에
<mvcBuildViews>
내 사이트의 .csproj 파일에서 "true"로 설정 (Razor보기 파일에서 컴파일 오류 찾기 : http://forums.asp.net/t/1909113.aspx?How+to+have+Visual+Studio+2012+returned + compile + errors + on + razor + syntax + error + in + asp + net + web + page + 2 + ) 그리고 빌드 할 때 내 사이트의 / obj / Debug / 디렉토리에서 오류가 발생했습니다. 오래된 파일 (오래된 파일)에서 마우스 오른쪽 버튼을 클릭하고 "정의로 이동"을 선택하면 [메타 데이터] 버전이 표시됩니다.
그래서 저에게는 여기에있는 어떤 솔루션도 효과가 없었습니다. 실제로 제 프로젝트에있는 파일에서 시작하지 않았기 때문입니다. 전체 / obj / Debug / 디렉토리를 삭제하면 오류가 사라지고 모든 일반 파일에서 Go To Definition을 올바르게 사용할 수 있습니다.
방금 VS 2013에서이 문제가 발생했습니다. 격리 할 수 없었던 것 중 하나는 CSPROJ 파일의 GUID를 변경하는 것입니다. CSPROJ 파일이 SVN에 체크인되었으므로 로컬 개발자의 GUID를 간단히 변경할 수 없습니다. 대신, 나는 그것이 발생할 때마다 로컬 변경을 되 돌리는 SVN을 계속했습니다.
먼저 GUID 변화 문제를 해결해야했습니다.
- CSPROJ를 체크인 버전으로 되돌립니다.
- VS가 아닌 텍스트 편집기를 통해 CSPROJ를 엽니 다.
원시 CSPROJ 파일에서 값을 추출하십시오.
{B1234567-5123-4AAE-FE43-8465767788ED}
VS가 아닌 텍스트 편집기를 통해 SLN 파일을 엽니 다.
솔루션에서 프로젝트 참조를 찾습니다.
Project ( "{FAE12345-3210-1357-B3EB-00CA4F396F7C}") = "Some.Project", ".... \ assemblies \ Some.Project \ Some.Project.csproj", "{B7654321-5321-4AAE- FE3D-ED20900088ED} "EndProject
나열된 첫 번째 GUID는 솔루션 GUID입니다. SLN에서 참조되는 모든 프로젝트에 대해 첫 번째 인수에서이 값이 반복되는 것을 확인해야합니다. .csproj 다음에 오는 GUID는 원시 GUID로 바꾸려는 GUID입니다.
이것은 첫 번째 문제를 해결해야하지만 메타 데이터의 "정의로 이동"랜딩은 해결되지 않았습니다. SLN 파일에는 마스터 프로젝트 (웹 사이트)가 있으므로 SLN 파일의 항목에는 여러 GUID 값이있는 ProjectSection 항목이 포함되어야합니다. 다음은 그 예입니다.
ProjectSection(ProjectDependencies) = postProject
{AC50D230-24C4-4DCA-BAAD-355E6AF5EFBD} = {AC50D230-24C4-4DCA-BAAD-355E6AF5EFBD}
EndProjectSection
이 컬렉션에서 누락 된 GUID는 내 원시 프로젝트에서 가져온 것입니다.
- 누락 된 GUID를 ProjectSection과 EndProjectSection 사이의 마지막 항목으로 추가합니다. 형식은 줄 단위로 표시되며 {GUID} = {GUID}입니다.
- 파일을 저장하십시오.
- 솔루션을 엽니 다.
- 새로 추가 된 프로젝트에서 참조를 마우스 오른쪽 버튼으로 클릭하고 "정의로 이동"을 클릭합니다.
I는 한 순환 참조 (노 아니요)과 관련된 두 개의 프로젝트 사이있다. 두 프로젝트가 서로에게 진정으로 의존하기 때문에 그것을 해결하기 위해 내 코드를 약간 재구성해야했습니다. 참조 중 하나를 제거하면 인텔리 센스 문제가 해결되었습니다. 논리적으로 결함이 있었고 아마도이 오류 없이는 눈치 채지 못했을 것입니다!
이것은 나를 위해 일했습니다.
- 솔루션 탐색기의 참조 폴더에서 dll을 마우스 오른쪽 단추로 클릭하십시오.
- DLL 파일 제거
- Reference 폴더를 마우스 오른쪽 버튼으로 클릭 한 다음
- dll 파일에 대한 참조를 다시 추가하십시오.
나는 같은 문제에 직면했고 동료 중 한 명이 나에게 다음과 같은 해결책을 주었고 효과가있었습니다! 위의 어느 것도 효과가 없다면
- 모든 참조를 제거하고 다시 추가하십시오 (경로가 올바른지 확인하십시오).
- 솔루션 속성으로 이동하여 모든 프로젝트의 프로젝트 종속성을 다시 확인합니다. 사용할 프로젝트가 작업중인 프로젝트에서 종속 항목으로 추가되었는지 확인합니다.
가장 좋은 추측은 디버그 정보가 없다는 것입니다. 디스크에 어셈블리의 여러 복사본이 있고 .pdb 파일이 없을 수 있습니다.
프로젝트에서 어셈블리 이름을 검색하고 모두 삭제하고 다시 빌드하십시오.
'IT' 카테고리의 다른 글
| SQL이 null이고 = null (0) | 2020.08.02 |
|---|---|
| SQL Server 2008 Windows 인증 로그인 오류 : 많은 수없는 도메인에서 로그인했습니다. (0) | 2020.08.02 |
| MSTest 테스트 실행 중 Console.Out에 쓰는 방법 (0) | 2020.08.02 |
| if-return-return 또는 if-else-return을 사용하는 것이 더입니까? (0) | 2020.08.02 |
| Eclipse에서 Tomcat을 시작할 때 "SetPropertiesRule"경고 메시지 (0) | 2020.08.02 |
