通过cmd卸载exe程序

时间:2012-06-07 13:05:40

标签: c# cmd windows-installer exe msiexec

我正在编写一个应用程序,用于从网络中删除旧版本的Qmuzik ERP软件并安装新版本。我已经使用C#中的Process方法通过cmd命令执行msi来安装新版本。我使用的命令是:

msiexec /qn /i "MSI Path" 

这很好用。

我这样做的原因是因为必须按顺序运行多个msi。使用过程方法,我可以观察过程并检测它何时完成并执行序列中的下一个msi。所有这些都安静地发生在用户的电脑上。

问题是,在我安装新版本之前,我必须卸载以前的版本。使用exe安装文件将旧版本安装到计算机上。我已经尝试将exe文件转换为msi并使用msiexec通过命令行卸载,但它对已经安装了exe而不是转换后的msi(整个网络)的实例没有影响

我是否可以在cmd中使用任何Command来卸载使用exe安装的这些实例?

3 个答案:

答案 0 :(得分:4)

在Windows中安装程序时,会创建一个用于卸载的注册表项,其中包含多个值,其中包括 UninstallString 值,该值是添加或删除程序点击删除时使用。

父键是:

  

HKEY_LOCAL_MACHINE \ SOFTWARE \微软\的Windows \ CurrentVersion \卸载

这些 UninstallStrings 通常具有以下格式:

  

MsiExec.exe / I {0826F9E4-787E-481D-83E0-BC6A57B056D5}

为了完成您要执行的操作,您必须创建RegistryKey object,读取要删除的应用程序的 UninstallString 值并运行命令行。< / p>

更多信息here

答案 1 :(得分:1)

您可以使用revo卸载程序,而不是其卸载功能,但是对于其主视图,它会显示应用程序的已注册卸载字符串。

但这只是一个起点。每个安装引擎都可以拥有自己的卸载字符串。你必须找到正确的,如果你足够幸运它存在(尝试/安静,/被动等,直到找到正确的那个)。

答案 2 :(得分:-2)

转到FIle Path,查找需要卸载的.exe文件。在命令提示符下打开.exe的路径并执行&#34; xxxx.exe --uninstall&#34;。