2017-10-19 8 views
0

Visual Studio 2017 용 디스플레이 디버거에서 작업 중이며 모든 것이 잘 빌드되지만 유형에 대한 디스플레이 디버거 목록에는 표시되지 않습니다. VS의 임시 인스턴스에서 디버깅을 시도하고 수동으로 VSIX를 설치했습니다. 온라인에서 찾은 몇 가지 프로젝트를 확인한 결과 모든 것이 동일 해 보입니다. 무엇이 이것을 일으킬 수 있습니까? 내 두려움은 문서화되어 있지 않은 2017의 변경 사항입니다 (VS SDK Github 프로젝트에는 디버거 샘플이 표시되지 않으며 VS 템플릿에서도 참조되지 않습니다).디스플레이 디버거가 Visual Studio에 표시되지 않습니다. 2017

내 프로젝트 클래스 라이브러리, .NET 4.6.1, 모든 CPU, 디버그 또는 가장 간단한 예는 여전히 작동하지

해제는,하지만 여기있다 :

[assembly: DebuggerVisualizer(typeof(Test.TestVisualizer), typeof(VisualizerObjectSource), 
    Target = typeof(System.String), Description = "Test Viz")] 
namespace Test 
{ 
    public class TestVisualizer : DialogDebuggerVisualizer 
    { 
     override protected void Show(IDialogVisualizerService windowService, IVisualizerObjectProvider objectProvider) 
     { 
      var str = objectProvider.GetObject()?.ToString(); 

      MessageBox.Show($"Value: {str}", "Visualizer"); 
     } 
    } 
} 

UPDATE : VSIX뿐 아니라 출력 파일을 저장하기 위해 프로젝트 파일을 수정했습니다. VSIX에는 실제로 DLL이 포함되어 있지 않습니다. Documents/Visual Studio 2017/Visualizers 폴더에 DLL 파일을 복사하면 작동합니다. VSIX 패키징을 알아 내야 할 것 같습니다!

+0

여기에서 솔루션을 공유해 주셔서 감사합니다.이 문제가 해결 된 경우 문제의 솔루션을 게시하지 말고 답변으로 게시 한 다음 답변으로 표시하십시오. 그래서 그것은 같은 문제를 가진 다른 커뮤니티 회원들을 도울 수 있습니다. 좋은 하루 되세요 :) –

+0

물론입니다. 그 문제는 해결되었지만 실제로는 효과가 없습니다. DLL을 Visualizers 폴더로 끌어 오면 작동합니다. VSIX에 DLL이 포함되어 있더라도 ProvideAutoLoad가 UIContextGuids80.Debugging으로 설정된 경우에도 VSIX에서는 작동하지 않습니다 (패키지는 활성화되지만). 나는 질문을 닫을 수는 있지만 실제로 해결되지는 않습니다 ... –

답변

2

분명히 확장 자체는 괜찮습니다. 문제는 VSIX 패키징 또는 실제 시각화 프로그램 활성화입니다. 나는 그것에 대한 새로운 질문을 만들 것이다.

[편집] 을 설치하는 VSIX 패키지는을 관리 디버거 비주얼 라이저에 사용할 수 없습니다. 오류는 없지만 단순히 작동하지 않습니다. 관리 디버거 비주얼 라이저를 설치하는 방법은 Visualizer 폴더에 파일을 복사하는 것입니다 (원래 질문 참조). 이 작업은 수동으로 또는 MSI를 사용하여 수행 할 수 있습니다. 이 사실을 문서화해야합니다!

+0

같은 문제를 가진 다른 커뮤니티 회원에게 도움이 될 수 있도록 답변으로 표시 할 수 있습니다. –