无法在VSIX中动态加载项目

问题描述 投票:1回答:1

当我在一个应用程序中使用同一解决方案(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知道如何使用它吗?

NB:对错或语法错误感到抱歉,英语不是我的母语。

c# visual-studio vsix
1个回答
0
投票

我终于成功地做到了,通过使用这个:

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

其中projectFileName是.csproj的路径。

© www.soinside.com 2019 - 2024. All rights reserved.