在Visual Studio中由addin留下的上下文菜单中的死项

时间:2013-12-17 17:30:16

标签: visual-studio-2010 visual-studio-2012 visual-studio-addins

我们正在为Visual Studio开发插件。它在Solution Explorer上下文菜单中创建项目。 问题是当我们删除插件时,菜单项仍然存在但没有图标。当我点击它时,VS建议删除该命令。见截图。 enter image description here

如何卸下它们以取消命令?
目前我只是在卸载过程中从“Visual Studio 2012 \ Addins”文件夹中删除了插件文件。
我正在使用Connect类:IDTExtensibility2

2 个答案:

答案 0 :(得分:1)

一种选择是使用以下命令在卸载时运行.vbs脚本:

Set dte = CreateObject("VisualStudio.DTE.11.0")
dte.Commands.Item("your_command_name").Delete
dte.Quit

答案 1 :(得分:0)

我找到了帮助here 在.addin文件中:

<CommandPreload>0</CommandPreload>

在Connect类中:

    public void OnDisconnection(ext_DisconnectMode disconnectMode, ref Array custom)
    {
        switch (disconnectMode)
        {
            case ext_DisconnectMode.ext_dm_HostShutdown:
            case ext_DisconnectMode.ext_dm_UserClosed:
                Command command = applicationObject.Commands.Item(addInInstance.ProgID + "." + addWebDAVServerCommandId);
                if (command != null)
                {
                    command.Delete();
                }
                break;
        }
    }

    public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom)
    {
        applicationObject = (DTE2)application;
        addInInstance = (AddIn)addInInst;

        // We should never get here, this is temporary UI
        if (connectMode == ext_ConnectMode.ext_cm_UISetup)
            return;