Tag: 卸载

以编程方式卸载应用程序

我们有一个Excel AddIn说一个用C#写的,附加在Express中。 安装程序是从VS中的安装项目构build的。 现在我们要将它集成到另一个更大的附加应用程序中,例如B.我们希望能够在安装B期间卸载A. B也是用C#编写的,但是它的安装程序是从Advanced Installer构build的。 我试过下面的VBA,AddIns只包含“XLL Add In”而不是“A COM Add In”。 所以它不起作用。 所以我想写一个exe文件来检测是否安装了A,如果是的话,卸载它。 并在B的安装程序中调用该exe文件。 任何人都知道如何“在C#中卸载程序”? 还是有更好的解决办法? 谢谢一旦我可以检测到A并将其卸载到EXE中,我将能够将它挂在B的安装程序中。安装程序/ Uninstaller类在.NET中不是一个选项,因为我没有在B的安装程序中使用它们。 Dim item As AddIn Set item = Application.AddIns("A COM Add In") If Not item Is Nothing Then item.Installed = False 'item = Nothing 'Not sure if this does anything End If Dim item As AddIn Set […]

卸载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注册到加载项对话框中的更新。 非常感谢。