【问题标题】:Ribbon tab exists even after uninstalling PowerPoint Add-in即使在卸载 PowerPoint 加载项后功能区选项卡仍然存在
【发布时间】:2014-05-27 11:24:55
【问题描述】:

我使用 C# VSTO 为 PowerPoint 2010/2013 创建了一个应用程序级插件。插件是从 msi 安装程序文件安装的。

问题是,在我从控制面板卸载插件并打开新的 PowerPoint 演示文稿后,功能区选项卡仍然可见,所有功能都正常工作。

要删除标签,我必须做以下两件事之一:

  1. 从 PowerPoint 开发人员选项卡的 COM 加载项列表中删除加载项。
  2. 从任务管理器结束正在运行的 PowerPoint 实例。

我已经为我在 ThisAddIn_StartUp 方法中完成的所有初始化调用了 dispose 方法(在 ThisAddIn_Shutdown 方法中),但这没有帮助。

private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
    {
        this.Application.WindowSelectionChange -= Application_WindowSelectionChange;
        this.Application.SlideSelectionChanged -= Application_SlideSelectionChanged;
        this.Application.SlideShowBegin -= Application_SlideShowBegin;
        this.Application.SlideShowEnd -= Application_SlideShowEnd;          
    }

我错过了什么吗?

非常欢迎任何帮助。 谢谢!

【问题讨论】:

  • 卸载插件时 PowerPoint 是否正在运行,或者在安装插件后启动 PowerPoint 时插件是否仍然存在?如果我没记错的话,功能区会在所有 PowerPoint 窗口(即所有演示文稿)之间共享。所以只要它已经被加载,在你退出当前的 PowerPoint 实例之前它就不会被卸载。
  • 即使我关闭 PowerPoint 的当前实例然后卸载,如果我再次打开一个新的演示文稿,我也可以看到该选项卡。一次也只有一个有效的 PowerPoint 演示文稿。
  • 您是使用 RibbonX 修改功能区还是使用旧的命令栏创建 UI(这会将您的工具栏/按钮放在功能区的“加载项”选项卡上)?如果是后者,您需要在加载项卸载时显式删除它们。
  • 在您的注册表中搜索您的插件的另一个条目并删除它们。 Powerpoint 2010 通常出现在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\PowerPoint\Addins 和 HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\PowerPoint\Addins 中
  • @SteveRindsberg - 嗨史蒂夫,实际上我正在使用功能区(视觉设计师)模板来创建功能区。

标签: c# vsto powerpoint-2010 comaddin powerpoint-2013


【解决方案1】:

终于查明原因了。这是由于在 Ribbon.Designer.cs 文件的 InitializeComponent() 方法中编写了几行自定义代码。

删除那段代码后问题就解决了。

【讨论】:

  • 你能告诉我你做了什么改变,因为我遇到了同样的问题
  • 您必须确保您的代码中使用的所有变量都得到了正确处理。在我的情况下,我使用的是 PowerPoint 的 Application Version 属性,并且由于我在 Ribbon.Designer.cs 文件的 InitializeComponent() 方法中使用它而没有正确处理它。花了很多时间从头开始弄清楚这个问题是在开发过程中的什么时间产生的。
猜你喜欢
  • 2021-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多