문제

미디어 센터 용 플러그인을 작성할 때 플러그인이 호스팅됩니다. ehexthost.exe 이 exe는 발사됩니다 ehshell.exe 그리고 직접 시작할 방법이 없습니다. 대신 특별한 매개 변수를 전달합니다. ehshell.exe 별도의 프로세스에서 플러그인을 시작합니다.

우리가 디버깅 할 때 미디어 브라우저 두 번째 프로세스에 부착하는 과정을 발견했습니다. Debugger.attach에 대해 알고 있습니다. 특별 레지스트리 내가 사용할 수있는 항목.

이 두 방법 모두 내 청구서에 맞지 않습니다. 내가 원하는 것은 F5를 누르고 현재의 Visual Studio 인스턴스가 자식 프로세스에 자동으로 첨부되는 것입니다. 이 작업을 수행 할 수 있습니까?

이 기능을 달성 할 수있는 VS 용 플러그인이 있다면 기뻐할 것입니다.

편집하다

나는 다음 매크로와 함께 갔다.

Public Sub CompileRunAndAttachToEhExtHost()

    DTE.Solution.SolutionBuild.Build(True)
    DTE.Solution.SolutionBuild.Debug()

    Dim trd As System.Threading.Thread = New System.Threading.Thread(AddressOf AttachToEhExtHost)
    trd.Start()

End Sub

Public Sub AttachToEhExtHost()
    Dim i As Integer = 0
    Do Until i = 50
        i = i + 1
        Try

            For Each proc As EnvDTE.Process In DTE.Debugger.LocalProcesses
                If (proc.Name.IndexOf("ehexthost.exe") <> -1) Then
                    proc.Attach()
                    Exit Sub
                End If
            Next
        Catch e As Exception
            ' dont care - stuff may be busy 
        End Try
        Threading.Thread.Sleep(100)
    Loop
End Sub

또한 방법에 대한 프로세스를 설명했습니다 이거 가십시오 내 블로그에서.

도움이 되었습니까?

해결책

나는 매크로를 사용할 것입니다. F5 기능을 재정의하여 일반적으로 수행하는 긴 빌드/유효성 검사 대신 ASP.NET 프로세스에 첨부했습니다. 이것은 나에게 아주 잘 작동하며 정말 쉽습니다.

    For Each process In DTE.Debugger.LocalProcesses
        If (process.Name.IndexOf("aspnet_wp.exe") <> -1) Then
            process.Attach()
            Exit Sub
        End If
    Next

다른 팁

VS2012의 경우 매크로가 삭제되었지만 표준 키보드 바로 가기로 계속 빠르게 수행 할 수 있습니다. 예를 들어, iisexpress.exe에 부착 :

Ctrl 키 + 대체 + - 프로세스에 첨부 된 대화 상자를 나타냅니다

- 목록에서 i로 시작하는 첫 번째 프로세스로 점프합니다 (이것은 나에게 iisexpress.exe입니다)

입력하다 - 첨부

수퍼 속도를 위해서도 당신도 할 수 있습니다 IIS를 디버깅 할 때 Visual Studio 첨부 보안 경고를 끄십시오..

내가 쓴 VisualStudio 플러그인을 확인하십시오. 게으른.

스타트 업에서 예외를 던져 추락 한 외부 스폰 된 프로세스에서 C ++ 플러그인을 디버깅하고 있었는데 이것은 나에게 완벽하게 작동했습니다.

무료를 추가하십시오 Visual Studio의 Reattach 확장. 프로세스 이름이 시작되기 전에 ReatTach를 요청하십시오. 프로세스 이름이 시작되기를 기다리고 있다는 모달 대화 상자가 나타납니다.

이제 프로세스를 시작하면 Visual Studio Debugger가 즉시 첨부되어 예외를 포착하고 중단 점을 누르십시오.

(이것은 미디어 플러그인에도 있었으며, 예외는 일반적으로 델파이 컨텍스트에서 호스트 프로세스에 의해 잡히고 재구성되었습니다.

Visual Studio에서 그와 비슷한 것을 설정하는 경우 F5를 눌러 프로세스에 자동으로 첨부 할 수 있습니다.

http://vvcap.net/db/ujyl7zen_n_rgeprqcsm.htp

통지 : "명령"이 실행 가능한 이름으로 채워졌으며 "첨부"가 "예"여야합니다.

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