【发布时间】:2014-05-27 11:24:55
【问题描述】:
我使用 C# VSTO 为 PowerPoint 2010/2013 创建了一个应用程序级插件。插件是从 msi 安装程序文件安装的。
问题是,在我从控制面板卸载插件并打开新的 PowerPoint 演示文稿后,功能区选项卡仍然可见,所有功能都正常工作。
要删除标签,我必须做以下两件事之一:
- 从 PowerPoint 开发人员选项卡的 COM 加载项列表中删除加载项。
- 从任务管理器结束正在运行的 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