我的应用程序调用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的进度条必须移到最后一个(右端)。”
如何编辑呢?你对我有什么想法吗?

c# - 自定义msiexec进度栏?-LMLPHP

最佳答案

建议:您可以尝试这样的操作(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

一些链接:
  • Silent installation of a MSI package
  • How can I find the product GUID of an installed MSI setup?
  • How to report msi installation status on quiet install
  • 10-08 08:28