Расширения Visual Studio - Как создать SolutionFolder внутри SolutionFolder? - PullRequest
0 голосов
/ 17 сентября 2018

В соответствии с тем, что я могу найти здесь , невозможно добавить SolutionFolder внутри SolutionFolder:

Visual Studio 2005 и более поздние версии позволяют добавлять папки в решение(которые называются папками решений), а не только для добавления папок в проект (что уже было разрешено в Visual Studio .NET 2002).Папки решений могут быть вложенными, а папка, принадлежащая решению (корневая папка решения), моделируется как EnvDTE.Project, поэтому для добавления дочерней папки решения в корневую папку решения необходимо использовать EnvDTE.Project.ProjectItems..AddFolder метод.Тем не менее, этот метод вызывает NotImplementedException.

Я пытаюсь сделать то же самое сейчас - через 7 лет после написания этого поста в Visual Studio 2017 версии 15.8.4 - и, к сожалению, я получаюто же NotImplementedException при попытке этого.

Есть ли другой возможный способ создания такой подпапки решения из расширения Visual Studio?

Ответы [ 2 ]

0 голосов
/ 17 сентября 2018

Итак, похоже, уловка заключается в том, чтобы получить 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);
0 голосов
/ 17 сентября 2018

Расширения Visual Studio - Как создать SolutionFolder внутри SolutionFolder?

Вот расширение о том, как создать папку решения из выбранной папки, включая файлы в этой папке: Папка в папку решения .

Устраните необходимость добавления нескольких файлов в папку решения. Просто используйте контекстное меню для решения и чуть ниже опции создав новую папку решения, вы теперь найдете «Добавить папку как решение» Папка». Это создаст папку решения с тем же именем, что и вы выберите и добавьте элементы из этой папки в решение папка. Это не будет перемещать файлы на диске.

Вы можете проверить исходный код: https://github.com/ceciliasharp/Extension.FolderToSolutionFolder

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...