我的应用程序调用msiexec运行卸载。
logger->LogDebug("Actions: MsiUninstallExec()!");
System::Diagnostics::Process ^p = gcnew System::Diagnostics::Process();
p->StartInfo->FileName = "msiexec";
p->StartInfo->Arguments = "/x " + AppSetting::ProductCode;
p->Start();
/// -->>> Uninstall
/// -->> Choose restart or not.
/// -->>> Application Exit
卸载完成后,用户必须选择重新启动还是不选择完成此过程。
但是我的客户要求:“msiexec的进度条必须移到最后一个(右端)。”
如何编辑呢?你对我有什么想法吗?
最佳答案
建议:您可以尝试这样的操作(find product GUID):
msiexec.exe /X {PRODUCT-GUID} /QN REBOOT=ReallySuppress /L*V "C:\Temp\msilog.log"
快速命令行说明:
/X {PRODUCT-GUID} = run uninstall sequence for specified product
/QN = run completely silently
/REBOOT=ReallySuppress = suppress reboot prompts
/L*V "C:\Temp\msilog.log" = verbose logging at specified path
替代方法:有许多方法可以调用MSI卸载:Uninstalling an MSI file from the command line without using msiexec。您可以通过卸载:
msiexec
, ARP
, WMI
, PowerShell
,部署系统,如 SCCM
, VBScript
/ COM自动化, DTF
,或通过 hidden Windows cache folders
,和其他几个选项。msiexec.exe :
msiexec.exe
命令行有两种形式。原来的一个和后来的一个添加了“全字”开关,例如/quiet
和/noreboot
等。原始命令行使用/qn
作为静音模式的开关。这是两种口味的链接:MSIEXEC what is the difference between qn and quiet。一些链接: