2010-12-30 3 views
2

VSPackage을 C#으로 개발 중이며 현재 파일을 가져 오는 방법을 알고 싶습니다. 여러 파일이 Visual Studio에서 열립니다).VSPackage : "실제"솔루션을 열지 않은 경우 선택한 파일을 얻는 방법

계층 구조가있을 때 모두 올바르게 작동합니다 (실제 솔루션 열림). 그러나 Visual Studio에서 하나의 파일을 열면 curren 선택을 가져올 수 없습니다. Visual Studio (솔루션 없음)와 select File ->Open ->File을 열어 볼 수 있습니다.

itemid, documentCookie, mkDocumentName 또는 기타 중 하나를 가져와야합니다. 내가 선택 이벤트를 듣고 시도>, 새로운 해당 itemId는 -> 그것은 항상 계층 구조없이 솔루션 항목 ID를 검색 (Intpr.Zero)

  • IVsSelectionEvents -

    • IVsMonitorSelection.GetCurrentSelection() :

      나는 다음과 같은 시도 항상 해결책 itemid
    • RunningDocumentTable -> 열린 파일을 열거 할 수 있기 때문에 해결책을 찾지 못했습니다. 그러나 현재 어떤 파일인지 확인하는 방법을 모르겠습니다.
  • 답변

    5

    DTE가 해결할 수있는 것처럼 들립니다. DTE2.ActiveDocument (SDTE를 쿼리하여 검색)를 확인 했습니까?

    var dte = (DTE2)GetService(typeof(SDTE)); 
    var doc = dte.ActiveDocument; 
    // Check doc.Name, doc.Path, doc.FullName 
    
    관련 문제