无法在 VSIX 中动态加载项目

Cannot load dynamically a project in VSIX

当我在同一解决方案 (VS2019) 中处理包含多个项目的应用程序时,为了保留资源,我经常卸载或加载不同的项目,具体取决于我正在处理的项目。 这就是为什么我想创建一个插件,允许保存加载和卸载的项目的特定配置。 到现在为止,我可以轻松地卸载当前 DTE 中的项目,例如:

IVsSolution solution = (IVsSolution)sp.GetService(typeof(SVsSolution));
IVsSolution4 solution4 = (IVsSolution4)sp.GetService(typeof(SVsSolution));

// Close all projects
foreach (Project project in projectsFromDTE)
{
    IVsHierarchy hierarchy;
    solution.GetProjectOfUniqueName(project.UniqueName, out hierarchy);
    Guid guidProjectID;
    solution.GetGuidOfProject(hierarchy, out guidProjectID);
    solution4.UnloadProject(guidProjectID, (uint)_VSProjectUnloadStatus.UNLOADSTATUS_UnloadedByUser);
}

但我不知道如何加载这些项目。我找到了这个文档:https://docs.microsoft.com/en-us/visualstudio/extensibility/managing-project-loading-in-a-solution?view=vs-2019 知道如何使用它吗?

注意:对于拼写错误或语法错误,我深表歉意,英语不是我的母语。

我终于成功了,用这个:

IVsHierarchy hierarchy;
                    solution.GetProjectOfUniqueName(projectFileName, out hierarchy);
                    Guid guidProjectID;
                    solution.GetGuidOfProject(hierarchy, out guidProjectID);
                    solution4.ReloadProject(guidProjectID);

其中 projectFileName 是 .csproj 的路径。