我正在用 C# 开发一个VSPackage,我想知道当只有一个文件(或在 Visual Studio 中打开多个文件)时如何获取当前文件。
当有层次结构(打开一个真正的解决方案)时,一切正常。但是当我在 Visual Studio 中打开单个文件时,我无法获得当前选择。我的意思是打开 Visual Studio(没有解决方案)和select File
-> Open
-> File
。
我需要获得其中之一:itemid、documentCookie、mkDocumentName 或其他。
我尝试了以下方法:
IVsMonitorSelection.GetCurrentSelection()
-> 它总是检索没有层次结构的解决方案项目 id (Intpr.Zero)IVsSelectionEvents
-> 我尝试监听选择事件,新的 itemId 始终是解决方案 itemidRunningDocumentTable
-> 好吧,我快找到解决方案了,因为我可以枚举打开的文件,但我不确定如何确定哪个是当前文件。