Visual Studio扩展:在解决方案资源管理器中获取当前所选文件的路径

他们

我正在尝试为Visual Studio创建我的第一个扩展,到目前为止,我一直在按照本教程进行入门(http://www.diaryofaninja.com/blog/2014/02/18/who-said-building -visual-studio-extensions-was-hard)。现在,当我在解决方案资源管理器中单击文件时,出现一个自定义菜单项。现在,我的小项目需要在解决方案资源管理器中获取所选文件的路径,但我不知道该怎么做。有什么帮助吗?

----------------------------编辑--------------------- ---------

正如matze所说,答案在我发布的链接中。当我写它的时候我只是没有注意到它。同时,我还在该线程中找到了另一个可能的答案:如何使用vs包在解决方案资源管理器中获取所选项目的详细信息

我在哪里找到此代码:

foreach (UIHierarchyItem selItem in selectedItems)
            {
                ProjectItem prjItem = selItem.Object as ProjectItem;
                string filePath = prjItem.Properties.Item("FullPath").Value.ToString();
                //System.Windows.Forms.MessageBox.Show(selItem.Name + filePath);
                return filePath;
            }

因此,这里有两种获取所选文件路径的方法:)

马佐

您提到的文章已经包含了解决方案。

menuCommand_BeforeQueryStatus在示例代码中查找方法。它使用该IsSingleProjectItemSelection方法获取IVsHierarchy代表项目对象以及所选项目的ID。看来您可以安全地将层次结构强制转换IVsProject并使用其GetMkDocument功能来查询项目的完整路径...

IVsHierarchy hierarchy = null;
uint itemid = VSConstants.VSITEMID_NIL;

if (IsSingleProjectItemSelection(out hierarchy, out itemid))
{
    IVsProject project;
    if ((project = hierarchy as IVsProject) != null)
    {
        string itemFullPath = null;
        project.GetMkDocument(itemid, out itemFullPath);
    }
}

我不想将文章中的整个代码复制到此答案中,但是该IsSingleProjectItemSelection函数如何获取所选项目可能会很有趣因此,我只是添加一些注释,以指导正确的方向...该方法使用GetCurrentSelection全局IVsMonitorSelection服务方法来查询当前选定的项目。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Visual Studio 2017 RC解决方案资源管理器中找不到project.json

Visual Studio:将解决方案资源管理器滚动到当前文件的快捷方式

如何在Visual Studio 2010的解决方案资源管理器中找到文件?

Visual Studio解决方案资源管理器不显示文件和文件夹

Visual Studio 2013:如何在解决方案资源管理器中显示活动文件?

切换分支不会刷新Visual Studio中的解决方案资源管理器

在Visual Studio中快捷方式在Windows文件资源管理器中打开解决方案?

未在Visual Studio的解决方案资源管理器中对SCSS文件进行分组

如何在Visual Studio 2013解决方案资源管理器中获取文件路径?

在Visual Studio 2015解决方案资源管理器中未显示bower.json

在解决方案资源管理器下的Visual Studio解决方案中创建的文件夹未出现在源代码管理资源管理器中

使用Mac的Visual Studio在解决方案资源管理器中复制客户端文件

无法访问Visual Studio 2010解决方案资源管理器中的文件夹

Visual Studio解决方案资源管理器-针对资产文件观察到的不同图标

无法在Visual Studio 2017解决方案资源管理器中编辑.csproj文件

Visual Studio 2019-使用PowerShell打开文件而不是解决方案资源管理器

如何在Visual Studio的解决方案资源管理器中添加文件?

更改Visual Studio解决方案资源管理器的字体大小

解决方案资源管理器不更新Visual Studio 2015中的团队项目

Visual Studio 2013更新4,解决方案资源管理器中的重复条目

Visual Studio for Web 2013无法在解决方案资源管理器中看到所有文件

在Visual Studio中是否可以重命名正在编辑的文件而在解决方案资源管理器中找不到它?

Visual Studio解决方案资源管理器“不输入”符号含义吗?

如何在Visual Studio中将解决方案资源管理器与当前文件同步?

Visual Studio,在(解决方案资源管理器的)某个筛选器内的所有文件中查找/替换文本

如何在Visual Studio 2019中的解决方案资源管理器中打开包含文件的文件夹

Visual Studio .Net解决方案资源管理器图标

在Visual Studio 2015中更改解决方案资源管理器工具窗口的标题

Visual Studio解决方案资源管理器无法找到所有内容

TOP 榜单

热门标签

归档