2014-02-11 1 views
2

VB 및 C#에서 여러 프로젝트가있는 VS Forms Pro에 Windows Forms 솔루션이 있습니다. 종속성 중 하나는 다음과 같습니다.정의로 이동하고 Visual Studio에서 모든 참조가 작동하지 않음을 확인하십시오.

Startup Project, SP (VB) 
    Custom Controls Library, CL (C#) 
     Utils/Constants Library, UL (VB) 
    UL (again, referenced directly from SP) 

내 문제는 SP에서 CL로 이동하면 개체 브라우저로 이동한다는 것입니다. CL에서 UL로 Def To Define을하면 메타 데이터가 나타납니다. 하지만 SP에서 UL까지 Def로 이동하면 정상적으로 작동합니다. 또한 CL에서 컨트롤의 모든 참조를 찾을 때 SP 참조를 표시하지 않지만 SP에서 수행하면 SP 및 CL에 모두 참조가 표시됩니다.

StackOverflow, MSDN 및 기타 여러 포럼에서 검색 한 모든 제안을 시도했습니다. 모든 참조를 제거하고 다시 작성했습니다 (100.0 %는 파일 참조가 아니라 프로젝트 참조 임). . 솔루션 파일을 완전히 삭제하고 처음부터 프로젝트를 추가했습니다. 참조의 GUID가 참조의 GUID와 일치하는지 확인했습니다. 그것들은 모두 동일한 프레임 워크로 빌드되며 모두 동일한 프로세서 유형에 사용됩니다. 모든 프로젝트는 pdb 및 xml 디버그 파일을 생성합니다. VS2013이 IntelliSense 데이터베이스 파일을 삭제했다고 가정합니다. 삭제할 디스크를 찾을 수 없기 때문에 (또는 시도했을 것입니다!).

또 다른 재미있는 (나는 관련이 있다고 가정하고있다.) 세부 사항은 CL의 메소드/속성 이름 변경이 SP에 반영되지 않는다는 것이다. SP 하위 클래스의 심볼은 이름이 변경되지 않았을뿐만 아니라 Visual Studio는 내가 다시 빌드하기 전까지는이 오류를 알려주지 않습니다. IntelliSense가 손상된 것처럼 보이거나, 내가 놓친 다른 것이 있습니다.

저는 정말 실망합니다. 지금까지 내가 기억할 수있는 한,이 기능이 작동했습니다. 2012 년에서 2013 년으로 업그레이드 한 이후에 효과가 있었는지 여부는 확실하게 알 수 없습니다. 동일한 경험을 가진 사람이 있습니까? 추가 기능을 사용하지 못하게하고, 솔루션을 다시 빌드하고, 프로젝트 종속성을 다시 추가했습니다. Visual Studio를 다시 설치하지만 더 간단한 방법이 있으면 수 시간의 개발 시간을 잃고 싶지는 않습니다.

+0

모든 설정을 재설정하려고 했습니까? 도구/"가져 오기 및 내보내기 설정 ..." – Martin

+0

죄송합니다. – 404compilernotfound

+0

Def 등으로 이동하여 다른 프로젝트와 함께 사용합니까? 다른 솔루션에서이 솔루션을 사용해 볼 수 있습니까? 아마도 VS의 설치와 관련된 문제가 아니기 때문에 프로젝트와 관련되어 있기 때문에 묻습니다. – Martin

답변

2

현재 Express Edition 만 있습니다. VB2013 Express를 사용하여 새로 만든 빈 프로젝트를 설명했습니다 (예 : VB -> C# -> VB). 당신이 설명한 모든 행동을 볼 수 있습니다. 그러나 VS2012 Express는 똑같은 행동을 보여줍니다.

따라서 다시 설치하는 것이 도움이되지 않습니다.

저는 보통 여러 프로젝트가 포함 된 솔루션을 사용하고 Go To Definition 등은 프로젝트 전체에서 원활하게 작동하지만 두 개 이상의 언어를 사용하는 프로젝트가 포함 된 솔루션을 사용한 적이 없습니다.

다른 .NET 언어를 사용하는 프로젝트에서 IntelliSense를 원활하게 작동시키는 기능이 전혀 구현되지 않은 것 같습니다.

업데이트 : VS2010도 같은 방식으로 동작합니다.

+0

테스트 해 주셔서 감사합니다! 2012 년에 제대로 작동했는지 기억이 나지 않습니다. 나는 이것을 직장에서 다른 해결책으로 시험 할 것이다 (2008 년). 내 예측은 나는 똑같은 행동을 보게 될 것이다. – 404compilernotfound

0

나는 Find All Refs 옵션을 찾으려고 시도 할 때와 동일한 문제가 있었으며 여러 언어 또는 VS 버전과 관련이 없지만 제외 된 파일과 관련이 있음을 발견했습니다. 일반 파일은 Exclude From Project에 대해 마우스 오른쪽 클릭 메뉴 옵션을 가지고 있지만

enter image description here 는 점 분리 아이콘 소스 파일이 하나있다 : 솔루션 탐색기에서 내 파일 CenterConverter.cs와 같은, 막연한, 점선, 파일 아이콘을 볼 수 있습니다 Include In Project입니다.

제외 된 파일의 속성을 보면 Build Action (컴파일 여부) 및 Copy To Output Directory 속성이 없음을 알 수 있습니다.

프로젝트에 파일을 포함하면 파일이 컴파일되고 Go To DefinitionFind All References과 같은 옵션이 의미가 있습니다.

2

최근에 VS2013으로 업그레이드했으며 함수가 호출 된 솔루션의 모든 위치를 표시하는 데 사용되는 "모든 참조 찾기"옵션이 정의 된 함수 이름을 클릭하면 알 수 있습니다. 현재는 이미보고있는 것을 보여줍니다. 내가 바로 MyNewFunction을 클릭하고 출력 창은 기호가 결과 찾기 "라는"모든 참조 찾기 "를 선택하면 공공 공유 기능 MyNewFunction (문자열로 ByVal의 테스트)

- : 내 앞에

는 지금은 라인 (218)이 1 개의 일치를 찾았습니다 "이며 위와 동일한 함수 이름, 파일 및 행 번호입니다. 그래서 효과적으로 쓸모가 없습니다.

물론, 아직 보지 못한 숨겨진 설정이 있습니까?

+0

크레이그, 해결책을 찾았습니까? 어제 VS2008에서 VS2015로 마이그레이션했는데 놀랍고 실망 스럽습니다. '모든 레퍼런스 찾기 (Find All References)'가 정확히 설명하는 것처럼 깨졌습니다. 나는 2008 년으로 되돌아 가고 싶다! – Resource

0

VisualStudio 2010에서 "모든 참조 찾기"명령이 정상적인 사용 후 사라진 유사한 문제가 발생했습니다.

바로 가기 키를 사용하면 "현재 사용할 수 없음"행에 따라 메시지가 표시되고 "정의로 이동"을 시도하면 오류 대화 상자가 표시됩니다.

Visual Studio를 종료하고 다시 열어도 문제가 해결되지 않아 상황을 변경할 수있는 설정을 찾을 수 없습니다.

이상하게도 문제는 한 소스 코드 파일에만 국한되었으며 다른 파일에는 적용되지 않습니다.

이상한 점에서 I 은 영향을받은 소스 코드 파일을 닫은 다음 솔루션 탐색기에서 파일을 두 번 클릭하여 다시 열었습니다. 그러면 문제가 해결되었습니다.

가장 좋은 추측은 파일의 캐시 된 인덱스가 손상되었다는 것이고이 캐시를 새로 고치려면 Visual Studio 프롬프트를 닫고 다시 열어야한다는 것입니다.

관련 문제