zoukankan      html  css  js  c++  java
  • VS2017插件开发-项目右键菜单

    1.创建自定义命令

    2.更改.vsct中Group节点的id

     <Group guid="guidPublishOwinPackageCmdSet1" id="MyMenuGroup" priority="0x0600">
            <Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_PROJNODE" />
          </Group>

    列举 Group 节点的Id属性其中比较关键的几个

    IDM_VS_CTXT_SOLNNODE  是指的解决方案资源管理器里的解决方案
    
    IDM_VS_CTXT_SOLNFOLDER    是指的解决方案资源管理器里的 解决方案里的文件夹,不是项目里的哈,这个文件夹是虚拟的,没有实际的文件夹映射
    
    IDM_VS_CTXT_PROJNODE  是指的解决方案资源管理器里的项目
    
    IDM_VS_CTXT_FOLDERNODE  是指的解决方案资源管理器里的项目里的文件夹
    
    IDM_VS_CTXT_ITEMNODE  是指的解决方案资源管理器里的项目里的项,就例如cs、js文件

    3.获取右键选择的项目物理路径

           private static Tuple<string, string, string> GetPath(IServiceProvider serviceProvider)
            {
                var dte = serviceProvider.GetService(typeof(DTE)) as DTE2;
                var projects = (UIHierarchyItem[])dte?.ToolWindows.SolutionExplorer.SelectedItems;
                if (projects == null)
                {
                    ShowMessage("未选中任何项目!", serviceProvider);
                    return null;
    
                }
                var project = projects[0];
                var item = project.Object as Project;
                var path = item?.FullName;
                if (string.IsNullOrWhiteSpace(path))
                {
                    ShowMessage("项目路径为空!", serviceProvider);
                    return null;
    
                }
                if (!File.Exists(path))
                {
                    ShowMessage(path + "文件不存在!", serviceProvider);
                    return null;
    
                }
    
                var srcPath = item?.Properties.Item("FullPath").Value?.ToString();
                if (string.IsNullOrWhiteSpace(srcPath))
                {
                    ShowMessage("FullPath路径为空!", serviceProvider);
                    return null;
    
                }
                //path:.csproj全路径
                //srcPath:.csproj所在的目录
                //item.Name:项目名称
                return Tuple.Create(path, srcPath, item.Name);
            }
  • 相关阅读:
    Python 网络爬虫
    Linux 下安装 java 运行环境 jdk1.8
    SSH: Transferred 0 file(s) 解决
    java idea 好用的插件
    java idea 安装 环境配置等 注意事项(只是备注给自己看的事项,不是安装教程)
    git 上传已有项目 到git仓库 初始化git并上传
    git 清除远程仓库已经删除的本地分支 清除已经合并到master的本地分支
    oracle trunc 日期 数字 的使用例子
    股票小白2
    股票小白知识点1
  • 原文地址:https://www.cnblogs.com/gaobing/p/8328116.html
Copyright © 2011-2022 走看看