需要将项目从
Solution
移动到 SolutionFolder
。我正在尝试使用 EnvDTE
的 SolutionFolder.AddFromFile(Filepath line);
将项目从解决方案中移除并添加回文件夹中,因为文档中找不到如何移动项目到解决方案(或安装项目的新父级)的方法。但是以这种方式添加项目时,这些项目会出现在 MRU 列表(起始页和 Windows 起始菜单)中。
如何将项目移动到 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;
}