这是我要卸载该应用程序的代码。
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();
}
但是在运行这段代码之后……它说索引超出范围了……有人可以帮助我处理代码吗?
答案 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。
某些链接 :