簡體   English   中英

C#EnvDTE將項目從Solution移動到SolutionFolder

[英]C # EnvDTE Moving projects from the Solution to SolutionFolder

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

如何在不添加MRU列表的情況下將項目移動到SolutionFolder?

不好的英語

此時添加功能:

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;
}

SolutionFolder和Project Class不提供將解決方案中的include項目移動到解決方案文件夾而不刪除項目的方法。

如果項目包含在您的解決方案中,則需要將其刪除並將其添加到解決方案文件夾中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM