MsiExec.exe идентификатор продукта удалить

Как показано на рисунке, я получил строку удаления приложения. введите описание изображения здесь

И это код, который я пытаюсь удалить из приложения.

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 ответ

Пожалуйста, смотрите мой ответ в двойном вопросе: Удаление программы.


MSI API: вместо того, чтобы манипулировать строками, используйте MSI API для удаления с помощью автоматизации COM. Я не уверен, каков ваш сценарий, нам нужно знать больше о том, какова ваша цель. Очень часто есть альтернативные способы сделать вещи, которые делают всю операцию менее рискованной.

Удаление по названию продукта: если вам известно только название продукта, который вы хотите удалить, то, возможно, посмотрите, как вы можете использовать MSI API для его удаления здесь: есть ли альтернатива GUID при использовании msiexec для удаления приложения?

Другие способы удаления: Существует также множество других способов удаления: удаление файла MSI из командной строки без использования msiexec.


Некоторые ссылки:

Другие вопросы по тегам