종속성 그래프에서 코드 종속성 시각화
조직 코드 및 해당 종속성을 이해 하 고 참조 종속성 그래프를 Visual Studio Ultimate에서 만들 수 있습니다.종속성 그래프 무엇 이며 어떻게 유용 합니까?
지원 되는 프로젝트:
Windows 저장소 응용 프로그램과 어셈블리 파일 (.dll 또는.exe)를 비롯 하 여 visual C#.net 및.net Visual Basic 프로젝트를 합니다.
Visual C++ 프로젝트를 C 또는 C++ 코드 (관리 되는 코드나 네이티브)를 갖는 Windows 저장소 응용 프로그램을 포함 하 여, 헤더 파일 (.h 또는 #include), 및 이진 파일입니다.
비디오:
항목 내용
어떻게 시작 합니까?
코드에서 종속성 시각화
종속성 그래프를 공유합니다.
일괄 처리에 대 한 그래프를 생성 합니다.
문제 해결
어떻게 시작 합니까?
솔루션의 개요를 볼 수:에 있는 아키텍처 메뉴에서 선택 종속성 그래프 생성, 솔루션.
최상위 수준 어셈블리를 보여 주는 그래프를 볼 수 있습니다.이제 확장 하 여 이러한 어셈블리를 탐색할 수 있습니다.어셈블리 위에 마우스 포인터를 이동 하 고 선택의 갈매기형 펼침 단추 (^) 나타날 때 단추.네임 스페이스, 형식 및 코드를 탐색 하는 구성원에 대해 동일한 작업을 수행 합니다.
그룹 간 종속성을 보려면 그래프 항목을 선택 합니다.
자세한 내용은 솔루션의 개요를 볼 수.코드에서 발생할 수 있는 문제를 찾으려면 분석기를 실행할 수도 있습니다.자세한 내용은 종속성 그래프에서 코드의 잠재적 문제 찾기를 참조하십시오.
솔루션의 특정 종속성 시각화:에서 솔루션 탐색기, 관심 항목을 선택 합니다.프로젝트, 어셈블리 참조, 폴더, 파일 형식 및 해당 멤버를 선택할 수 있습니다.특정 항목을 찾을 수 있는 솔루션 탐색기 검색 상자.
에 솔루션 탐색기 도구 모음 선택 새 그래프 문서 만들기.
-또는-
항목을 끌어 솔루션 탐색기 는 기존 그래프.
팁 빈 그래프를 만들 수 있는 파일 메뉴를 선택 새, 파일, 그래프 문서 전달.항목에 대 한 상위 계층을 포함 하려면 누르고 있기를 CTRL 키 항목을 끕니다.
선택한 항목을 보여 주는 그래프를 볼 수 있습니다.이제 확장 하 여 이러한 항목을 탐색할 수 있습니다.마우스 포인터를 항목 위로 이동 하 고 선택의 갈매기형 펼침 단추 (^) 나타날 때 단추.
자세한 내용은 솔루션의 특정 종속성 시각화.코드에서 발생할 수 있는 문제를 찾으려면 분석기를 실행할 수도 있습니다.자세한 내용은 종속성 그래프에서 코드의 잠재적 문제 찾기를 참조하십시오.
종속성 그래프 무엇 이며 어떻게 유용 합니까?
종속성 그래프에 코드를 검사 하 고 종속 파일 및 코드를 통해 검색 하지 않고도 이해할 수 있는 시각적인 방법을 제공 합니다.노드 및 링크, 또는 화살표만 항목과 관계를 볼 수 있습니다.예를 들어, 코드 검토를 수행할 수 있습니다.하면 보류 중인 변경 내용이 있는 파일 집합이 있습니다.이러한 파일에서 종속성 그래프를 작성 하 여 코드 및 종속성에 대 한 변경 내용을 표시할 수 있습니다.참조 솔루션의 특정 종속성 시각화.
기본적으로 컨테이너 관계를 표현 됩니다 그룹에 확장 및 축소할 수 있습니다.
팁 |
---|
자식을 다시 인출 단추 코드에서 그래프에 표시 되지 않는 있지만 그룹 구성원을 검색할 수 있습니다.쉽게 볼 수 있도록 우리 또한 다른 스타일 호출 링크를 적용 했습니다.자세한 내용은 종속성 그래프 편집 및 사용자 지정를 참조하십시오. |
링크로 컨테이너 관계를 볼 수도 있습니다.그래프에 대 한 바로 가기 메뉴를 열고 그룹, 그룹화 해제 설정.
코드에서 발생할 수 있는 문제를 찾으려면 분석기를 실행할 수도 있습니다.자세한 내용은 종속성 그래프에서 코드의 잠재적 문제 찾기를 참조하십시오.
종속성 그래프를 처음 생성할 때 Visual Studio 발견 된 모든 종속성을 인덱싱합니다.이 프로세스는 특히 대형 솔루션 또는 여러 링크 그래프를 잠시를 걸릴 수 있습니다.그러나 인덱스는 나중에 작업의 성능을 향상 시킵니다.코드가 변경 되 면 업데이트 된 코드만 Visual Studio reindexes.
대기에 대 한 그래프 생성을 완료 하지 않으려면이 단계를 언제 든 지 취소 하 고 다음 방법을 시도해 수 있습니다.
원하는 종속성만 그래프.
전체 솔루션에 대 한 그래프를 생성 하기 전에 솔루션 범위를 줄입니다.
1GB의 메모리 Visual Studio 실행할 수 있지만 컴퓨터 Visual Studio 코드 인덱스를 만들고 그래프를 생성 하는 동안 오래 지연 되지 않도록 하려면 2GB 이상 메모리에 있다고 하는 것이 좋습니다.
[!참고]
최소 하나의 프로젝트가 성공적으로 빌드되면 Visual Studio 그래프를 생성 합니다.종속성만 성공적으로 작성 하는 코드를 보여 줍니다.다음 구성 요소에 특정 빌드 오류가 발생 하면 오류는 구성 요소에 대 한 그래프에 표시 됩니다.구성 요소는 실제로 빌드 종속성 그래프에 따라 아키텍처 결정을 하기 전에 갖고 있는지 확인 합니다.
이 그래프를 생성 하거나 솔루션 탐색기에서 프로젝트 항목 때의 그래프에 항목을 추가 하는 데 시간이 더 걸릴 수 있습니다 출력 디렉터리로 복사 속성을 설정 항상 복사.증분 빌드 때마다 프로젝트를 다시 빌드해야 Visual Studio이 문제가 발생할 수 있습니다.성능을 향상 시키려면이 속성을 변경 내용만 복사 또는 PreserveNewest.자세한 내용은 증분 빌드를 참조하십시오.
코드에서 종속성 시각화
개요 코드 가져오기
코드의 특정 종속성 시각화
C 또는 C++ 소스 파일 및 헤더 파일 간의 의존 관계를 시각화 합니다.
Graphcmd.exe를 사용 하 여 처리 하는 일괄 처리에 대 한 그래프를 생성 합니다.
팁 |
---|
C + +에 대 한 자세한 그래프를 생성 하려면 프로젝트를 찾아보기 정보 컴파일러 옵션 (/FR)에서 이러한 프로젝트를 설정 해야 합니다.그렇지 않으면 메시지가 표시 되 고이 옵션을 설정 하 라는 메시지가 나타납니다.메시지가 나타나면 선택 하 여 옵션을 현재 그래프에만 설정할 수 있습니다 확인, 또는 옵션을 설정 하 고 나중에 모든 그래프에 대 한 메시지를 숨길 수 있습니다.나중에 그래프에 나타나는 메시지를 확인 하려면 다음 레지스트리 키 설정 0 하거나 키를 삭제 하십시오. HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\NativeProvider : AutoEnableSbr 자세한 내용은 /FR, /Fr(.Sbr 파일 만들기)를 참조하십시오. |
개요 코드 가져오기
솔루션에 대 한 전체 종속성 그래프를 만들 수 있습니다 또는 어셈블리 또는 이진 파일에 대 한.
솔루션의 개요를 볼 수
에 아키텍처 메뉴를 선택 종속성 그래프 생성, 솔루션.
최상위 어셈블리 간의 집계 된 링크 표시 된 그래프를 볼 수 있습니다.얼마나 많은 개별 종속성 링크를 나타내는 집계 하 여 링크의 두께 나타냅니다.외부 그룹 외부 솔루션 플랫폼 종속성을 포함 하 여, 아무 것도 포함 되어 있습니다.외부 어셈블리에 사용 되는 항목만 표시 합니다.
이제 확장 하 여 이러한 어셈블리를 탐색할 수 있습니다.어셈블리 위에 마우스 포인터를 이동 하 고 선택의 갈매기형 펼침 단추 (^) 나타날 때 단추.(키보드: 항목을 선택한 다음 선택 된 + (+) 키.) 네임 스페이스, 클래스 및 코드를 탐색 하는 구성원에 대해 동일한 작업을 수행 합니다.
항목 또는 링크에 대 한 자세한 정보를 보려면 도구 설명이 나타날 때까지 포인터를 항목 위로 이동 합니다.
검사 항목 및 종속성을 집계 링크로 표시 하려면 먼저 링크를 선택 하 고 해당 바로 가기 메뉴를 엽니다.선택 표시, Contributing 링크 현재 다이어그램에서 또는 Contributing 링크 새 다이어그램에서.
Visual Studio 연결의 양 끝에 그룹을 확장 하 고 해당 항목과 참여 종속성 링크를 보여 줍니다.코드에서 있지만 그룹에서 누락 된 항목을 보려면 선택 자식을 다시 인출.
참조
어셈블리 이진 파일의 개요를 볼 수
빈 그래프 만들기, 또는 기존 그래프 (.dgml 파일)을 엽니다.Visual Studio 외부 어셈블리 또는 이진 파일이 그래프로 끕니다.
[!참고]
Windows 탐색기 및 Visual Studio 동일한 사용자 액세스 제어 (UAC) 사용 권한 수준에서 실행 된 경우에 Windows 탐색기에서 어셈블리 또는 이진 파일을 끌 수 있습니다.예를 들어, UAC 켜져 및 Visual Studio 관리자 권한으로 실행 중인 경우 다음 Windows 탐색기 끌기 작업이 차단 됩니다.이 문제를 해결 하려면 Visual Studio 관리자 권한으로 실행 되 고 있는지 확인 하거나 UAC 기능을 해제 합니다.이때 Windows 8에서, Windows 탐색기 파일 탐색기입니다.
또는
에 아키텍처 메뉴를 선택 Windows, 아키텍처 탐색기.
첫 번째 열에서에서 파일 시스템, 선택 파일 선택.
에 열려 상자, 찾기 및 어셈블리 또는 이진 파일을 선택 합니다.선택 열려 에서 다음 열을 추가 하려면 아키텍처 탐색기.
아키텍처 탐색기, 어셈블리 또는 이진 파일을 선택 합니다.
선택한 어셈블리 또는 이진 파일이 포함 된 열의 오른쪽에 확장 축소 된 작업 열을 선택 합니다.
팁 위에 포인터를 이동 하면 축소 된 작업 열을 강조 표시 됩니다.
작업 열에서에서 명령, 선택 열려 종속성 그래프를 생성 합니다.
자세한 내용은 아키텍처 탐색기로 코드 찾기를 참조하십시오.
빈 그래프를 만들려면
솔루션에 추가 하지 않고 새 빈 그래프를 열려면는 파일 메뉴를 선택 New, 파일.
또는
빈 그래프에 추가 하는 솔루션 항목 폴더에 솔루션을 바로 가기 메뉴의 최상위 솔루션 노드를 엽니다.선택 추가, 새 항목.
아래 설치 된, 선택 일반.
오른쪽 창에서 선택 그래프 문서 전달.
빈 그래프에서 모델링 프로젝트에 추가할 수도 있습니다는 아키텍처 메뉴를 선택 하 여 새 다이어그램.
코드의 특정 종속성 시각화
솔루션에 있는 특정 항목에 대 한 종속성 그래프를 만들 수 있습니다 또는 어셈블리와 이진 파일에서.
솔루션의 특정 종속성 시각화
솔루션 탐색기, 관심 항목을 선택 합니다.프로젝트, 어셈블리 참조, 폴더, 파일 형식 및 해당 멤버를 선택할 수 있습니다.특정 항목을 찾을 수 있는 솔루션 탐색기 검색 상자.
팁 형식이 나 멤버에 종속 된 항목을 찾으려면 형식 또는 멤버에 대 한 바로 가기 메뉴를 엽니다. 솔루션 탐색기.의존 관계 종류를 선택 합니다.솔루션 탐색기 지정한 종속성이 있는 항목을 보여 줍니다.결과 선택 합니다.
항목과 해당 멤버에서 그래프에 솔루션 탐색기 도구 모음 선택 새 그래프 문서 만들기.
또는
부모 계층에서 그래프를 포함 하는 열은 만들기 새 그래프 문서... 목록에 솔루션 탐색기 도구 모음에서 선택한 다음 새 종속성 그래프가 상위.
팁 그래프에 항목을 드래그할 수도 있습니다.첫 번째, 빈 그래프 만들기 또는 기존 그래프 (.dgml 파일)을 엽니다.부모 컨테이너의 계층 구조를 포함 하려면 누르고 있기를 CTRL 키 항목을 끕니다.
선택한 항목을 보여 주는 그래프를 볼 수 있습니다.
항목을 탐색 하 여 확장할 수 있습니다.마우스 포인터를 항목 위로 이동 하 고는 갈매기형 펼침 단추 선택 (^) 나타날 때 단추.모든 항목을 확장 하려면 그래프에 대 한 바로 가기 메뉴를 엽니다.선택 그룹, 모든 확장.
[!참고]
이 명령은 모든 그룹 확장 메모리 문제 또는 사용할 수 있는 그래프 생성 되는 경우에 사용할 수 없습니다.
그룹에서 누락 된 항목을 검색 하려면 자식을 다시 인출 그룹.
그래프에 관련 된 자세한 항목을 보려면 항목의 바로 가기 메뉴를 엽니다.선택 표시 및 관심 항목의 관계.
어셈블리를 선택 합니다.
참조된 어셈블리
이 어셈블리가 참조 하는 어셈블리를 추가 합니다.외부 어셈블리 표시에 외부 그룹.
어셈블리를 참조합니다.
어셈블리가이 어셈블리를 참조 하는 솔루션에 추가 합니다.
클래스를 선택 합니다.
기본 형식
클래스의 기본 클래스 및 구현 된 인터페이스를 추가 합니다.
인터페이스의 기본 인터페이스를 추가 합니다.
파생된 형식
클래스의 파생된 클래스를 추가 합니다.
에 대 한 인터페이스를 파생된 인터페이스와 구현 클래스 또는 구조체를 추가 합니다.
모든 기본 형식
기본 클래스를 추가 하거나 계층 구조 재귀적으로 인터페이스.
모든 파생된 형식
클래스의 모든 파생된 클래스 재귀적으로 추가 합니다.
에 대 한 인터페이스를 파생된 인터페이스와 구현 클래스 또는 구조체 재귀적으로 추가 합니다.
포함 계층 구조
부모 컨테이너의 계층 구조를 추가 합니다.
사용 되는 형식
모든 클래스와이 클래스를 사용 하 여 해당 멤버를 추가 합니다.
형식을 사용 하 여
모든 클래스와이 클래스를 사용 하 고 해당 멤버를 추가 합니다.
에 대 한 메서드를 선택 합니다.
포함 계층 구조
부모 컨테이너의 계층 구조를 추가 합니다.
호출된 된 메서드
이 메서드를 호출 하는 메서드를 추가 합니다.
메서드 호출에서
이 메서드를 호출 하는 메서드를 추가 합니다.
재정의 된 메서드에서 기본 형식
다른 메서드를 재정의 하거나 인터페이스의 메서드를 구현 하는 방법으로 추상 또는 가상 메서드를 재정의 된 기본 클래스에 추가 하 고 있는 경우, 즉 인터페이스의 메서드 구현 합니다.
참조 되는 필드
이 메서드를 참조 하는 필드를 추가 합니다.
필드를 선택 합니다.
포함 계층 구조
부모 컨테이너의 계층 구조를 추가 합니다.
메서드 참조
이 필드를 참조 하는 메서드를 추가 합니다.
참조
바이너리 또는 어셈블리를 특정 종속성 시각화
에 아키텍처 메뉴를 선택 Windows, 아키텍처 탐색기.
첫 번째 열에서에서 파일 시스템, 선택 파일 선택.
에 열려 상자, 찾기 및 어셈블리 또는 이진 파일을 선택 합니다.선택 열려 에서 다음 열을 추가 하려면 아키텍처 탐색기.
다음 칼럼에서는 어셈블리 또는 이진 파일을 선택 합니다.
기본적으로 다음 열 선택한 항목에 포함 된 항목을 표시 합니다.
팁 다른 관련된 항목을 선택 하려면 축소 된 열 오른쪽에 있는 열을 선택 하려면 확장 합니다.아래 노드 탐색, 관심 항목의 종류를 선택 합니다.아래 아웃 바운드 탐색 또는 인바운드 탐색, 원하는 관계의 종류를 선택 합니다.자세한 내용은 아키텍처 탐색기로 코드 찾기를 참조하십시오.
찾기 및 그래프에 추가할 모든 항목을 선택 합니다.
새 그래프를 만들 수 있는 아키텍처 탐색기 도구 모음 선택 에서 선택한 모든 노드에서 새 그래프 문서 만들기.
Visual Studio 그래프를 생성 하 고 엽니다.
또는
그래프에 선택 사항을 추가 하려면 다음과이 같이 하십시오.
그래프의.dgml 파일을 열 또는 빈 그래프 만들기.
에 아키텍처 탐색기 도구 모음 선택, 현재 표시 된 그래프 문서에 선택된 된 모든 노드에 추가.
또는
항목을 끌어 아키텍처 탐색기 그래프.
C 및 C++ 소스 파일 및 헤더 파일 간의 의존 관계를 시각화 합니다.
종속성을 확인할 대상 |
방법 |
---|---|
솔루션의 모든 소스 파일과 헤더 파일 |
에 아키텍처 메뉴에서 선택 종속성 그래프 생성, 를 포함 하는 파일. |
현재 열려 있는 파일 및 관련된 된 소스 파일 및 헤더 파일 |
|
[!참고]
Visual C++ 프로젝트가 포함 된 솔루션을 열면 IntelliSense 데이터베이스를 업데이트 하는 데 시간이 걸릴 수 있습니다.이 시간 동안 헤더에 대 한 종속성 그래프를 만들려면 못할 수도 있습니다 (.h 또는 #include) 파일을 IntelliSense 데이터베이스 업데이트 완료 될 때까지.Visual Studio 상태 표시줄에 진행 상황 업데이트를 모니터링할 수 있습니다.특정 IntelliSense 설정을 사용할 수 있기 때문에 나타나는 메시지 또는 문제 해결을 참조 하십시오. 문제 해결.
종속성 그래프를 공유합니다.
저장 하 고 그래프를 Visual Studio 다른 사용자와 공유
사용 된 파일 그래프를 저장 하는 메뉴입니다.
또는
그래프는 특정 프로젝트의 일부로 저장 하려면 그래프 화면에 바로 가기 메뉴를 엽니다.선택 이동 <DependencyGraphName.dgml> 에 및 그래프를 저장 하려는 프로젝트.
Visual Studio Visual Studio 궁극적인, 프리미엄, Visual Studio 및 Visual Studio 전문가의 다른 사용자와 공유할 수 있습니다.dgml 파일로 그래프를 저장 합니다.
[!참고]
프리미엄 Visual Studio 및 Visual Studio Professional을 사용 하는 사람들와 그래프를 공유 하기 전에 모든 그룹을 확장, 숨김된 노드 표시 하 고 그룹 간 링크 및 그래프에 게 표시할 모든 삭제 된 노드를 검색 해야 합니다.그렇지 않으면 다른 사용자가 이러한 항목을 볼 수 없습니다.
모델링 프로젝트에 있거나 모델링 프로젝트에서 다른 위치로 복사된 그래프를 저장할 때 다음 오류가 발생할 수 있습니다.
"프로젝트 디렉터리 외부에 fileName을(를) 저장할 수 없습니다.연결된 항목이 지원되지 않습니다."
Visual Studio 오류를 표시 하지만 그래도 저장 된 버전을 만듭니다.이 오류가 발생하지 않게 하려면 모델링 프로젝트 외부에 그래프를 만듭니다.그런 다음 원하는 위치에 그래프를 저장할 수 있습니다.파일을 솔루션의 다른 위치에 복사하고 저장해 보는 것으로는 문제가 해결되지 않습니다.
PowerPoint 또는 Microsoft Word와 같은 다른 응용 프로그램으로 복사할 수 있도록 그래프를 이미지로 내보내기
그래프 화면에 바로 가기 메뉴를 엽니다.선택 편집, 이미지 복사.
이미지를 다른 응용 프로그램에 붙여 넣습니다.
Internet Explorer 마찬가지로 XAML 이나 XML 뷰어에서 볼 수 있도록 그래프를 XPS 파일 형식으로 내보내기
그래프 화면에서 바로 가기 메뉴를 엽니다.선택 XPS로 저장할.
에 으로 저장 대화 상자에서 찾아보기 파일을 저장 하려는 위치를.
그래프 이름입니다.있는지 확인은 형식 상자에 설정 되어 XPS 파일 (*.xps).선택 저장.
일괄 처리에 대 한 그래프를 생성 합니다.
사용 하 여 일괄 처리 모드에서 그래프 문서 (.dgml 파일)를 생성할 수 있는 GraphCmd.exe 명령줄 도구.예를 들어, 사용 도구 각 빌드 후 변경 된 찾기 종속성 빌드 사이 실행할 수 있습니다.이 도구는 C:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE 폴더에서 찾을 수 있습니다.
[!참고]
GraphCmd.exe.net 코드만 지원 및 Visual Studio 솔루션 또는 프로젝트 파일의 소스 코드가 아닌.dgml 파일 또는 어셈블리에 대 한 종속성 정보를 생성 합니다.DGQL 쿼리에서 작업에 대 한 지원은 제한 되므로 GraphCmd.exe 외부 Visual Studio 실행 합니다.
다음은 Graphcmd.exe에 대 한 구문은 다음과 같습니다.
GraphCmd -? -all -exceptions -input File_Name -query File_Name -exec "DGQL_Statement" -output File_Name -path alias=path
팁 |
---|
-input, -query, -exec 및 -path 옵션을 여러 번 지정할 수 있습니다. |
다음 표에서는 GraphCmd.exe의 옵션에 대해 설명합니다.
-? |
GraphCmd.exe의 도움말을 표시합니다. |
-all |
마지막 노드 집합만이 아닌 중간 쿼리 결과를 모두 포함합니다. |
-exceptions |
쿼리 예외를 그래프 문서(.dgml) 파일로 보고합니다. |
-input File_Name |
지정한 .dgml 파일을 처리합니다. 이 큰.dgml 파일을 후 처리 하 고 Visual Studio 보다 쉽게 시각화 하는 수 있습니다 필터링에 대 한 유용 합니다. |
-query File_Name |
지정한 DGQL(Directed Graph Query Language) 파일(.dgql)을 실행합니다. 참조
|
-exec "DGQL_Statement" |
지정한 DGQL 문을 실행합니다. 참조 이해 그래프 쿼리 언어 (DGQL) 지시. |
-output File_Name |
지정한 .dgml 파일을 출력합니다. |
-path 별칭=경로 |
DGML 문서의 입력과 출력에 사용할 새 별칭을 지정합니다. 예를 들면 다음과 같습니다.
참조 일반적으로 사용 되는 경로 대 한 별칭. |
일반적으로 사용 되는 경로 대 한 별칭
일반적으로 사용되는 경로에 대한 별칭을 통해 .dgml 파일의 크기뿐만 아니라 파일을 로드하거나 저장하는 데 필요한 시간을 줄일 수 있습니다.별칭을 만들려면 .dgml 파일의 끝에 <Paths></Paths> 섹션을 추가합니다.다음과 같이 이 섹션에서 <Path/> 요소를 추가하여 경로의 별칭을 정의합니다.
<Paths>
<Path Id="MyPathAlias" Value="C:\...\..." />
</Paths>
.dgml 파일의 요소에서 별칭을 참조하려면 <Path/> 요소의 Id를 달러 기호($) 및 괄호(())로 묶습니다.
<Nodes>
<Node Id="MyNode" Reference="$(MyPathAlias)MyDocument.txt" />
</Nodes>
<Properties>
<Property Id="Reference" Label="My Document" DataType="System.String" IsReference="True" />
</Properties>
.Dgml 파일을 편집 하려면을 참조 하십시오. 종속성 그래프 편집 및 사용자 지정.
DGQL(Directed Graph Query Language) 이해
DGQL은 DGML을 만드는 데 사용할 수 있는 간단한 쿼리 언어입니다.DGQL 문은 노드를 선택하면 다음 작업에 대한 입력이 생성되고 해당 출력은 다음 노드 선택에 대한 입력이 되는 방식으로 노드 선택과 작업이 교대로 반복되는 패턴을 따릅니다.
DGQL 문의 형식은 다음과 같습니다.
<node selection> / <action> / <node selection> / <action> / ...
다음 표에서는 노드를 선택하는 데 사용되는 DGQL 구문을 설명합니다.
* |
모든 노드를 선택합니다. |
+ "text" |
"text"가 포함된 모든 노드를 선택합니다. |
+ Id.Equals("text") |
Id가 "text"인 모든 노드를 선택합니다. |
+ Background.Contains("text") |
Background 특성에 "text" 문자열이 포함된 값이 있는 모든 노드를 선택합니다. |
+ "text1" + "text2" + ... |
"text1" 또는 "text2"와 일치하는 모든 노드를 선택합니다. |
+ MyProperty="True" |
값이 "True"인 MyProperty라는 속성이 있는 모든 노드를 선택합니다. |
- Label.Contains("text") |
"text" 문자열이 포함된(Contains)Label 특성이 있는 노드를 제외한 모든 노드를 선택합니다. |
+ Category.Is("MyCategory") |
MyCategory라는 범주가 있거나 MyCategory에서 상속되는 모든 노드를 선택합니다. |
다음 표에서는 선택한 노드에 대해 수행할 수 있는 직접 작업 예제에 대해 설명합니다.
작업 예제 |
설명 |
---|---|
Microsoft.Contains |
입력 노드에 포함된 모든 노드를 반환합니다.Contains를 다른 링크 범주로 바꿀 수 있습니다. |
Microsoft.Open |
입력 노드의 소스 코드를 엽니다.
참고
Visual Studio 내에서만 작동합니다.
|
Microsoft.AllOutBoundLinks |
입력 노드에서 보내는 링크의 대상인 모든 노드를 반환합니다. |
Microsoft.AllInboundLinks |
입력 노드에 대한 링크의 소스 end인 모든 노드를 반환합니다. |
Microsoft.Core.CreateGroupsByProperties |
GroupByProperties 작업을 호출합니다. |
Microsoft.AllNodes |
현재까지 완성된 전체 그래프의 모든 노드를 반환합니다. |
데이터 기반 작업에서는 입력 노드와 링크의 데이터만을 기반으로 항목을 선택합니다.데이터 기반 작업을 사용하여 범주를 일치시킬 때는 상속된 범주가 포함됩니다.다음 표에서는 데이터 기반 작업의 예제에 대해 설명합니다.
형식 |
설명 |
---|---|
Node:Both:Category |
Category 범주가 있으며 둘 중 한 방향을 가리키는 링크로 입력 노드와 연결된 모든 노드를 반환합니다. |
Link:Both:Category |
둘 중 한 방향을 가리키는 링크로 입력 노드와 연결되었으며 Category 범주가 있는 모든 노드를 반환합니다. |
Link:Backward:Category |
Category 범주가 있는 링크로 입력 노드를 가리키는 모든 노드를 반환합니다. |
Link:Forward:Category |
Category 범주가 있는 링크로 입력 노드에서 가리키는 모든 노드를 반환합니다. |
팁
일반적으로 특정 입력 노드 집합에 대한 "기본" 작업이 있으며 아키텍처 탐색기에서 이 작업이 자동으로 선택됩니다.동일하게 동작하게 하려면 빈 작업(//)을 사용합니다.
DGQL에서는 공백이 중요하지 않으므로 필요한 경우 쿼리 형식을 한 줄에 맞게 지정할 수 있습니다.이는 GraphCmd에 –exec 옵션을 사용하는 경우에 유용합니다.
DGQL을 디버깅할 때 아키텍처 탐색기에서 "Execute Expanded" 작업을 사용하면 쿼리의 각 단계를 보고 예상과 다른 결과를 생성하는 단계를 찾는 데 유용합니다.
예제
다음 DGQL문은 다음 단계에서 설명된 쿼리를 수행합니다.
+ Id.Equals("Microsoft.Solution.ClassView") / "Microsoft.Solution.ClassView" / * / "Node:Both:CodeSchema_Class" / + CodeSchemaProperty_IsPublic.Equals("True")
선택은 클래스 뷰 의 첫 번째 열 노드의 아키텍처 탐색기.
작업 수행 "Microsoft.Solution.ClassView", 솔루션에서 모든 네임 스페이스를 반환 합니다.
모든 네임스페이스를 선택하려면 *를 사용합니다.
둘 중 한 방향의 링크로 해당 네임스페이스에 연결된 CodeSchema_Class 범주의 노드를 모두 선택합니다.이는 일반적으로 포함 링크입니다.
결과 클래스를 CodeSchemaProperty_IsPublic="True" 속성이 있는 클래스로만 필터링합니다.
기술적으로 "Microsoft.Solution.ClassView" 작업은 클래스 뷰 노드의 "기본" 작업이기 때문에 필요 없습니다.따라서 작업을 //로 바꾸어 쿼리를 간소화하고 다음과 같이 한 줄로 형식을 지정할 수 있습니다.
+Id.Equals("Microsoft.Solution.ClassView")//*/"Node:Both:CodeSchema_Class"/+CodeSchemaProperty_IsPublic.Equals("True")
문제 해결
다음은 C 및 C++ 코드에 대 한 지원 되지 않습니다.
기본 형식은 부모 계층을 포함 하는 그래프에 나타나지 않습니다.
대부분의 표시 메뉴 항목 C와 C++ 코드를 사용할 수 없습니다.
다음 문제는 C 및 C++ 코드에 대 한 종속성 그래프를 만들 때 발생할 수 있습니다.
문제 |
가능한 원인 |
해결 |
---|---|---|
종속성 그래프를 생성 하지 못했습니다. |
솔루션에 프로젝트가 성공적으로 만들어졌습니다. |
발생 한 빌드 오류를 해결 한 다음 그래프를 다시 만듭니다. |
아키텍처 메뉴에서 종속성 그래프를 생성하려고 하면 Visual Studio가 응답하지 않습니다. |
프로그램 데이터베이스 파일(.pdb)이 손상될 수 있습니다. .pdb 파일에는 형식, 메서드 및 소스 파일 정보와 같은 디버깅 정보가 저장됩니다. 자세한 내용은 [OBSOLETE] 프로그램 데이터베이스 파일(C++)를 참조하십시오. |
솔루션을 다시 빌드한 다음 다시 시도합니다. |
IntelliSense 검색 데이터베이스에 대한 특정 설정을 사용할 수 없습니다. |
특정 IntelliSense 설정을 Visual Studio 옵션 대화 상자에서 사용하지 못할 수 있습니다. |
설정을 사용할 수 있도록 설정합니다. 자세한 내용은 옵션, 텍스트 편집기, C/C++, 고급를 참조하십시오. |
알 수 없는 메서드라는 메시지가 메서드 노드에 나타납니다. 이 문제는 메서드의 이름을 확인할 수 없기 때문에 발생합니다. |
이진 파일에 기본 재배치 테이블이 없을 수 있습니다. |
링커에서 /FIXED:NO 옵션을 설정합니다. 자세한 내용은 /FIXED(고정 기준 주소)를 참조하십시오. |
프로그램 데이터베이스 파일(.pdb)이 빌드되지 않았을 수 있습니다. .pdb 파일에는 형식, 메서드 및 소스 파일 정보와 같은 디버깅 정보가 저장됩니다. 자세한 내용은 [OBSOLETE] 프로그램 데이터베이스 파일(C++)을 참조하십시오. |
링커에서 /DEBUG 옵션을 설정합니다. 자세한 내용은 /DEBUG(디버깅 정보 생성)를 참조하십시오. |
|
.pdb 파일을 열 수 없거나 예상되는 위치에서 찾을 수 없습니다. |
.pdb 파일이 예상되는 위치에 있는지 확인합니다. |
|
디버그 정보가 .pdb 파일에서 제거되었습니다. |
/PDBSTRIPED 옵션이 링커에서 사용된 경우 전체 .pdb 파일을 대신 포함합니다. 자세한 내용은 /PDBSTRIPPED(전용 기호 제거)를 참조하십시오. |
|
호출자가 함수가 아니며 이진 파일의 썽크이거나 데이터 섹션의 포인터입니다. |
호출자가 썽크이면 썽크를 방지하기 위해 _declspec(dllimport)를 사용해 봅니다. 참조 |
어떻게 해야 합니까?
자세한 정보는 어디서 구할 수 있습니까?
범주 |
링크 |
---|---|
포럼 |
|
블로그 |