Итак, похоже, уловка заключается в том, чтобы получить SolutionFolder, в котором вы хотите создать подпапку как EnvDTE.Project , затем получить его свойство Object и привести его как SolutionFolder .
Это даст вам объект, для которого вы можете вызвать «AddSolutionFolder» с именем Folderame.
using EnvDTE;
using EnvDTE80;
Solution2 solution = (Solution2)dte.Solution;
// Adds a SolutionFolder (in the standard way) underneath the Solution and returns
// a Project. That Project object is the same as what you would get when going
// over your solution with solution.Projects and getting the folder you need
Project solutionFolderAsProject = solution.AddSolutionFolder(folder.Name);
SolutionFolder solutionFolderAsSolutionFolder = (SolutionFolder)solutionFolderAsProject.Object;
Project subSolutionFolder = solutionFolderAsSolutionFolder.AddSolutionFolder(item.Name);