首先让我说我是开发Visual Studio的加载项的新手......
使用DTE2对象时,我试图获取当前所选文档的一些信息。如果我做这样的事情:
DTE2 VisualStudioInstance = somethingOrOther;
Document documentInfo;
if(VisualStudioInstance.SelectedItems.MultiSelect == false)
{
documentInfo = VisualStudioInstance.SelectedItems.Item(1).ProjectItem.Document;
}
Document对象似乎总是为null。 VisualStudioInstance.SelectedItems.Item(1).Project也是null(我不一定需要,但这看起来也很奇怪。它确实给了我所选项目的名称,所以我至少知道它找到的东西
现在如果我直接进入VisualStudioInstance.ActiveDocument,我会得到我正在寻找的所有信息。该文件是否必须是开放的以获取信息?如果是这样,我怎样才能获得所选项目的文档信息而不打开它?我正在寻找的主要内容是所选文件的完整路径信息。提前谢谢。
答案 0 :(得分:2)
实际上您可以使用ProjectItem.FileNames属性。它是一个索引属性,即使文档已关闭也是有效的。
答案 1 :(得分:1)
如果它关闭则首先打开它,然后文档实例应该可用。
if (!projectItem.IsOpen)
{
projectItem.Open();
}