문제

Doers는 모든 프로젝트에 대한 솔루션 또는 디렉토리를 조사하고 원형 참조가 어디에 있는지, 순서대로 컴파일 할 수있는 좋은 유틸리티 또는 프로그램을 알고 있습니다.

얼마 전에 보았지만 어디서나 찾을 수 없습니다 ..

도움이 되었습니까?

해결책

ndepend 이 작업을 수행 할 수있는 훌륭한 도구입니다. 어쩌면 원하는 것은 과잉 일지 모르지만 시험판이 있으므로 살펴보십시오 ...

다른 팁

나는 이것이 늦은 답변이라는 것을 알고 있지만 Graemef와 Tsilb의 답변을 사용하여 두 어셈블리 사이의 의존성을 보여주지 않았다. 종속성 순서를 뒤집는 경우처럼 보입니다 (조립 a 참조 , 그러나 당신은 그것을 전환합니다 참조 ), 그것은 빌드 순서의 종속성을 남깁니다. 이를 해결하려면 솔루션의 속성 대화 상자를 열고 공통 속성으로 이동 한 다음 프로젝트 종속성을 프로젝트하십시오. 찾아보세요 조립 a 의존성을 제거하십시오 조립 b. 이렇게하면 참조를 정상적으로 추가 할 수 있습니다.

시스템을 통해 종속성 트리를 추격 할 수 있습니다. 반응. 트리를 만들 때 노드를 추가 할 때 노드의 부모가 추가하는 것과 동일한 프로젝트인지 어셈블리인지 확인합니다. 사실이라면, 예외를 사용자에게 버리십시오.

이와 같은 기술적 예외를 던지는 것은 사용자가 어셈블리 참조 및 예외가 어떻게 작동하는지 알고있는 사람들이 될 경우 괜찮습니다. 개발자와 같은 사람들 :)

사용하는 경우 프로젝트 솔루션의 프로젝트 간의 참조 올바른 빌드 순서는 Visual Studio (또는 MSBuild)에 의해 자동으로 결정됩니다. 물론 어셈블리 참조를 사용하는 경우 이것은 휴식입니다. 또한 Visual Studio는 원형 추가를 막을 수 있습니다. 프로젝트 참조.

몇 가지 원형 기준 경로가있는 거대한 비주얼 스튜디오 솔루션을 물려 받았습니다. 원형 참조 체인을 찾는 데 도움이되는 LINQPAD 스크립트를 썼습니다.

https://github.com/ronnieoverby/linqpad-utils/blob/master/find%20circular%20references.linq

내 구현은 아마도 순진하지만, 그것은 나에게 상당히 빠르게 작동했습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top