2014-11-03 2 views
1

Я создаю некоторое расширение Visual Studio, и я создаю папку с программным обеспечением программным способом. Но я не знаю, как создать папку с зависимым решением из другой папки решений? Может ли кто-нибудь помочь мне с этой проблемой? Благодаря!Зависимости папок решения

|--- SolutionFolder 
|   |--- SolutionFolder 
|   |--- SolutionFolder 
|--- SolutionFolder 

Вот мой код:

(object sender, EventArgs args) => 
{ 
    Guid slnFldrGuid = new Guid("2150E333-8FDC-42A3-9474-1A3956D46DE8"); 
    Guid iidProject = typeof(IVsHierarchy).GUID; 

    IVsSolution solution = GetService<IVsSolution, SVsSolution>(); 
    IVsHierarchy parent = UIShellUtilities.GetSelectedHierarchy(); 
    IVsHierarchy nested = null; 

    IntPtr project = IntPtr.Zero; 
    int canceled = 0; 

    if ((null != solution) && (null != parent)) 
    { 
     IVsProjectFactory factory = null; 

     ErrorHandler.ThrowOnFailure(solution.GetProjectFactory(
      0, new Guid[] { slnFldrGuid }, null, out factory)); 

     try 
     { 
      ErrorHandler.ThrowOnFailure(factory.CreateProject(
       null, null, "New My Folder", 0, ref iidProject, out project, out canceled)); 

      if (project != IntPtr.Zero) 
      { 
       nested = Marshal.GetTypedObjectForIUnknown(project, typeof(IVsHierarchy)) as IVsHierarchy; 

       Debug.Assert(nested != null, "Nested hierarchy could not be created"); 
       Debug.Assert(canceled == 0); 
      } 
     } finally 
     { 
      if (project != IntPtr.Zero) 
       Marshal.Release(project); 
     } 

     uint itemid = VSConstants.VSITEMID_ROOT; 

     // Link into the nested VS hierarchy. 
     //ErrorHandler.ThrowOnFailure(nested.SetProperty(VSConstants.VSITEMID_ROOT, (int)__VSHPROPID.VSHPROPID_ParentHierarchy, parent)); 
     //ErrorHandler.ThrowOnFailure(nested.SetProperty(VSConstants.VSITEMID_ROOT, (int)__VSHPROPID.VSHPROPID_ParentHierarchyItemid, (object)itemid)); 
    }       
} 

ответ

 Смежные вопросы

  • Нет связанных вопросов^_^