2016-12-15 5 views
9

Необходимо переместить проект с Solution на SolutionFolder. Я пытаюсь удалить проект из решения и добавить его обратно в папку с помощью EnvDTESolutionFolder.AddFromFile(Filepath line);, потому что не найден в документации, как перемещать проекты в решении (или устанавливать нового родителя для проекта). Но с добавлением проектов таким образом в список MRU (стартовая страница и меню запуска Windows) появляются эти проекты.C# EnvDTE Перемещение проектов из решения в SolutionFolder

Как переместить проект в SolutionFolder без добавления в список MRU?

СРЮ за плохой английского

добавления функции, как и в этот момент:

protected Project AddProjectToSolutionFolder(Project project1, SolFolderTypes solutionFolderType) 
{ 
    try 
    { 
     Solution2 solution = (Solution2)((DTE2)base._dteObject).Solution; 

     string projFullname = project1.FullName; 

     string solutionFolderName = solutionFolderType == SolFolderTypes.Folder1 ? "Folder1" : "Folder2"; 

     Project project = GetSolutionSubFolder(solution, solutionFolderName); 

     if (project != null) 
     { 
      SolutionFolder folder = (SolutionFolder)project.Object; 
      solution.Remove(project1); 
      project1 = folder.AddFromFile(projFullname); 
     } 
    } 
    catch (Exception e) 
    { 
    } 
    return project1; 
} 

private static Project GetSolutionSubFolder(Solution2 solution, string subfolder) 
{ 
    Projects projects = solution.Projects; 
    Project folder = projects.Cast<Project>().FirstOrDefault(p => string.Equals(p.Name, subfolder)); 

    if (folder == null) 
     folder = solution.AddSolutionFolder(subfolder); 

    return folder; 
} 

ответ

1

SolutionFolder и класс проекта не предоставляет способ для перемещения включает проект в растворе в папку решений без удаления проекта.

Если проект включен в ваше решение, его необходимо удалить и добавить в папку решений.

+0

Почему проекты с этим ходом попадают на стартовую страницу и как их избежать? –

+0

Вы хотите отметить, что он удалит проект Startup? –

+0

Когда вы создаете решение (constrainin 10 projects) с помощью IWizard, оно появляется в столбце «Недавние» на начальной странице Visual Studio (одна ссылка на sln-файл), и это нормально. Но если я удалю проект из этого решения и добавлю его снова, этот проект появится в этом столбце. Столбец заполнен 10 проектами одного решения, он выглядит не очень хорошо. Как этого избежать? –