MsiExec.exe产品ID卸载

时间:2018-09-11 07:43:56

标签: c# windows-installer

如图所示,我已经检索了应用程序的卸载字符串。enter image description here

这是我要卸载该应用程序的代码。

uninstlString = Convert.ToString(subkey.GetValue("UninstallString"));
if (uninstlString.Contains("MsiExec.exe"))
{
    //Console.WriteLine(uninstlString);
    //Console.ReadLine();
    string args = "/x{" + uninstlString.Split("/".ToCharArray())[1].Split("I{".ToCharArray())[2];
    //string prdctId = uninstlString.Substring(12);
    uninstallProcess.StartInfo.FileName = uninstlString.Split("/".ToCharArray())[0];
    uninstallProcess.StartInfo.Arguments = args;
    uninstallProcess.StartInfo.UseShellExecute = false;
    uninstallProcess.Start();
    uninstallProcess.WaitForExit();
}

但是在运行这段代码之后……它说索引超出范围了……有人可以帮助我处理代码吗?

1 个答案:

答案 0 :(得分:0)

  

请在重复的问题中查看我的答案:    Uninstalling program


MSI API :不是使用字符串处理,而是通过COM自动化正确使用MSI API进行卸载。我不确定您的情况如何,我们需要更多地了解您的目标是什么。通常,有其他方法可以使整个操作的风险降低。

按产品名称卸载 :如果您只知道要卸载的产品名称,则可以看看如何使用MSI API进行卸载。在此处卸载它:Is there an alternative to GUID when using msiexec to uninstall an application?

其他卸载方式 :还有无数其他卸载方式:Uninstalling an MSI file from the command line without using msiexec


某些链接