自MSIEXEC进度条?(Customize msiexec progress bar?)

2019-09-30 02:07发布

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

Answer 1:

建议 :你可以尝试这样的事情( 找到产品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卸载: 卸载命令行的MSI文件,而无需使用MSIEXEC 。 您可以通过卸载: msiexecARPWMIPowerShell ,部署系统,如SCCMVBScript / COM自动化, DTF ,或通过hidden Windows cache folders ,以及一些其他选项。


msiexec.exe的 :有两种口味msiexec.exe命令行。 原来的一个,并且添加了“全字”开关,如后一个/quiet/noreboot和喜欢。 原始命令行中使用/qn作为无声模式的切换。 这里是链接到两个口味: MSIEXEC是什么QN和安静之间的区别 。


一些链接

  • 一个MSI软件包的静默安装
  • 我怎样才能找到一个已安装的MSI安装程序的产品GUID?
  • 如何报道安静安装MSI安装状态


Answer 2:

msiexec /passive /x ProductCode

这应该给你只是进度UI。 是否要卸载完成时跳过重启或总是强迫重新启动你也可以询问用户。 然后,可以适当添加/ norestart更新日志文件/ forcerestart选项。



文章来源: Customize msiexec progress bar?