上午将一个build的前期自动化算是完成了,以后只需要点击bat文件,就可以自动完成安装,配置文件,重启service以及打开软件。这样就避免每次出新build的时候,手动重复单调的去操作。
在测试过程中,需要经常卸载软件,今天网上搜索了一下,发现MsiExec.exe 命令能够自动卸载软件,但是会出现卸载不完全的情况。
MsiExec.exe的使用方法:
但是对于使用batch语言卸载软件,使用命令:
MsiExec.exe /X {product code}
eg:
{MsiExec.exe /X{90120000-0028-0804-1000-0000000FF1CE}
其中,{90120000-0028-0804-1000-0000000FF1CE}是product code
去注册表,查看DisplayName 和Product Code
“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\” Key值对应的Product 下,需要去查看DisplayName ,那么就可以查看是否是你需要卸载的软件,然后再查看UninstallString的Key值,就可以查看到该软件的Product code,如图所示:
使用的时候,请慎重,因为有些时候卸载不完全,有可能在安装新版本的时候,会报错,那么这就悲剧了。所以,慎用MsiExec.exe /X {product code} 卸载软件。
按照上面做的 时候,出现了卸载不干净的情况,报如下错:
1628:failed to install based on scripts
类似的错误即为卸载不完全导致的。
解决方法:删除注册表
使用下面的脚本语言:
reg delete "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\InstallShield_%%%%%" /f
其中,%%%%是该软件的product_code.