VSIX添加文件夹右键菜单

返回
Author Avatar
钢翼
2019-03-16
编程
278
  1. 新建项目VSIX Project

  2. 新建项 Custom Command

  3. 打开*.vsct文件,找到以下节点,修改对应的id属性为IDM_VS_CTXT_FOLDERNODE

    <Groups>
      <Group guid="guidRightCmdPackageCmdSet" id="MyMenuGroup" priority="0x0600">      
        <Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_FOLDERNODE"/>
      </Group>
    </Groups>

    其中:

        IDM_VS_CTXT_SOLNNODE  是指的解决方案资源管理器里的    解决方案,       

        IDM_VS_CTXT_SOLNFOLDER    是指的解决方案资源管理器里的    解决方案里的文件夹,不是项目里的哈,这个文件夹是虚拟的,没有实际的文件夹映射,        

        IDM_VS_CTXT_PROJNODE  是指的解决方案资源管理器里的   项目,        

        IDM_VS_CTXT_FOLDERNODE  是指的解决方案资源管理器里的   项目里的文件夹,        

        IDM_VS_CTXT_ITEMNODE  是指的解决方案资源管理器里的   项目里的项,就例如cs、js文件              

        IDM_VS_MENU_TOOLS 是指的工具菜单     

  4. 如何获取右键文件夹的属性

    找到点击事件

     private void Execute(object sender, EventArgs e)
     {
          DTE dte =  (DTE)package.GetServiceAsync(typeof(DTE)).GetAwaiter().GetResult();
          var filename = dte.SelectedItems.Item(1).ProjectItem.FileNames[0];//获取点击的文件夹完整路径
          var projectPath= dte.SelectedItems.Item(1).ProjectItem.Collection.ContainingProject.FullName;//获取点击文件夹所在项目*.csproj的完整路径
     }