2016-12-15 75 views
9

有必要從Solution項目移到SolutionFolder。我試圖從解決方案中刪除項目,並使用EnvDTESolutionFolder.AddFromFile(Filepath line);將其添加回文件夾,因爲在文檔中未找到如何在解決方案中移動項目(或爲項目安裝新的父項)。但是在MRU列表(起始頁和Windows開始菜單)中添加這樣的項目後,會出現此項目。C#EnvDTE移動從解決方案項目SolutionFolder

如何將一個項目SolutionFolder不增加MRU列表?

SRY的英語不好

加入的功能,因爲它是在這一刻:

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

你的意思是它會刪除啓動項目? –

+0

使用IWizard創建解決方案(約束10個項目)時,它會顯示在Visual Studio的開始頁面上的「最近」列中(鏈接到sln文件的一個鏈接),並且確定。 但是,如果我從該解決方案中刪除該項目並再次添加該項目,該項目將顯示在此列中。該列充滿了一個解決方案的10個項目,看起來不太好。如何避免這種情況? –