2014-10-01 1 views
3

Visual Studio Extension을 작성 중이며 (a VS Package) 사용자가 클릭하여 새 탭을 시작할 때까지의 시간을 측정하려고합니다. 웹 브라우저에서 열면 사용할 수 있습니다. 웹 응용 프로그램이 시작되면VS 웹 응용 프로그램이 시작될 때 훅을 참조하십시오.

이상적으로 나는 시간에 시작을 측정 할 두 :

  • 디버그 → 디버깅 시작 (F5)
  • 디버그 → 디버깅 시작하지 않고 (Ctrl + F5)

    • B : 사용자가 시작되고이 완료 될 때

    IVsUpdateSolutionEvents4를 사용하여 내가 볼 수 있습니다

    • 사용자가 디버깅디버그 → 시작을 클릭 : 때 uild 솔루션 (SBF_OPERATION_BUILD)
    • 솔루션 (SBF_OPERATION_BUILD | SBF_OPERATION_FORCE_UPDATE)
    • 클린 솔루션 다시 빌드 (SBF_OPERATION_CLEAN)

    그리고 사용 IVsDebuggerEvents.OnModeChange 내가 볼 수 있습니다 (DBGMODE_Run)

  • 사용자가 Sto를 클릭합니다. P 디버깅 (DBGMODE_Design) 그러나

, 나는 응용 프로그램이 시작 완료되면 볼 수있는 좋은 훅을 발견하지 않았습니다. 어떤 아이디어?

답변

1

나는 "마술 고리"가 가능할 것이라고 기대하지 않습니다.

  • 사용자 히트 "디버그"
  • VS는
  • VS는 WebBrowserInterface
  • VS를 생성하는 임시 위치에서 패키지를 배포을 할 수있는 URL을 전송 : 여기에 웹 응용 프로그램의 경우 내가 VS가하는 생각입니다 브라우저와 탐색이 발생합니다.

이 시점에서 VS는 거의 완료되었지만 따라야 할 것이 많습니다.

  • 브라우저는
  • 웹 서버가
  • 는 웹 서버가 브라우저에 응답을 보내는 응용 프로그램을로드하는 웹 서버로 요청을 보냅니다.

그래서 브라우저는 사용자가 앱을 사용할 수 있다는 것을 알기 때문에 사용자가 찾고있는 이벤트를 실행해야합니다.

프로그래머가 Chrome, Safari, Firefox 등 기본 브라우저로 선택할 수 있기 때문에 이해하기 어려운 부분입니다.

제 생각에는 IIS 웹 액티비티를 모니터링하고 새로운 웹 응용 프로그램을 시작할 때 발생하는 상황을 감지해야합니다.

+0

나는 많이 생각했지만 감사합니다! 당신의 대답이 모든 개념적 단계를 제시하는 방식은 많은 것을 가르쳐주었습니다. 아마도 내가해야 할 일은 프로젝트가 시작할 URL을 파악한 다음 해당 URL에 대한 IISExpress 로그를 모니터링하는 것입니다. –

+0

VS가 브라우저로 URL을 보내는시기와 보내는 URL을 확인하는 방법을 알고 있습니까? –

+0

불행히도 아닙니다. 그러나 디버그를 누른 다음 IISExpress 로그를 분석 한 시간을 기록하면 "적중 시간 디버그"후 첫 번째 요청에 원하는 URL이 99 % 확률로 나타납니다. – VAndrei

관련 문제