Я разрабатываю VSPackage на C #, и я хотел бы знать, как получить текущий файл, когда только один файл (или несколько файлов открываются в Visual Studio).
Все отлично работает при наличии иерархии (открыто real решение). Но когда я открываю один файл в Visual Studio, я не могу получить текущий выбор. Я имею в виду открыть Visual Studio (без решения) и select File
-> Open
-> File
.
Мне нужно получить один из них: itemid, documentCookie, mkDocumentName или любой другой.
Я попробовал следующее:
IVsMonitorSelection.GetCurrentSelection()
-> Всегда получает идентификатор элемента решения без иерархии (Intpr.Zero)
IVsSelectionEvents
-> Я пытался прослушать событие выбора, новый itemId всегда является решением itemid
RunningDocumentTable
-> Ну, я близок, чтобы найти решение, потому что я могу перечислить открытые файлы, но я не уверен, как определить, какой из них является текущим.