卸载Excel互操作插件时卸载插件.xla

我有一个Excel互操作模块A(显示在菜单栏上),当加载Excel时,该模块反过来加载另一个Excel加载项B.xla。

A通过msi安装程序安装到Excel中。 B.xla通过收费

AddIn addin = excelApp.AddIns.Add(xlaFile); if (!addin.Installed) addin.Installed = true; 

当我卸载A时,安装程​​序所带的文件B.xla被删除。 A也从菜单栏和COM加载项列表中删除。 但是,B不会从macros加载项列表中删除。

因此,在卸载A之后,当我第一次打开Excel时,会显示一条消息,提示“加载项B丢失”。 我需要去macros加载项pipe理器取消B.点击取消选中后,Excel将再次说,它不能findB,并从列表中删除它。

如何在卸载程序的情况下从列表中取消激活和删除B,而无需通过加载项对话框/pipe理器? 当我执行A的更新时,这是一个问题。从菜单栏中删除了A.xla(文件本身)和A一起被删除,但是在Add-ins对话框中的B的条目仍然存在,并且将阻止尝试将新B注册到加载项对话框中的更新。

非常感谢。

不要使用Addins.Add – 只要有一个打开XLA就好像它是一个工作簿。 然后,当ExcelclosuresXLA将closures,你不需要搞乱Addinspipe理器。