Visual Studio 可扩展性 - 卸载当前项目

Visual Studio Extensibility - Unload current project

我需要制作一个 Visual Studio Extension/Plugin,其中涉及 unloading/reloading 个解决方案中的所有项目。

使用 Visual Studio 可扩展性 SDK (C#),我已经获得了项目列表 (EnvDTE.Project)。可悲的是,我找不到任何关于然后操作项目的像样的文档。

我看过一些与 DTE2.ExecuteCommand 有关的帖子,但后来找不到可用命令的列表以及如何使用它们。有人能指出我正确的方向吗?

您可以使用具有加载和卸载项目方法的 IVsSolutionInterface。试试这个将项目 guid 传递给构造函数的扩展方法。

private void UnloadProject(IVsSolution4 solution, Guid projectGuid)
    {
        int result;

        result = solution.UnloadProject(ref projectGuid, (uint)_VSProjectUnloadStatus.UNLOADSTATUS_UnloadedByUser);
        ErrorHandler.ThrowOnFailure(result);
    }