Выполнить удаление с помощью C#


Я искал это в интернете, но не смог найти.

Есть ли способ запустить деинсталлятор (с экрана программы и компоненты) через C#? Или это заблокировано Windows в целях безопасности?

3 2

3 ответа:

Вы можете использовать msiexec.exe . Вы можете просто удалить приложение с его product code. С помощью команды вы можете установить, показывать ли пользовательский интерфейс во время удаления или сделать его беззвучным,

string UninstallCommandString = "/x {0} /qn";

  • /qn : установить уровень пользовательского интерфейса: нет
  • /дь: набор пользовательского интерфейса уровень: Базовый пользовательский интерфейс
  • / qr : установить уровень пользовательского интерфейса: уменьшенный UI
  • / qf : установить уровень пользовательского интерфейса: полный пользовательский интерфейс (по умолчанию)

C# code

string UninstallCommandString = "/x {0} /qn";

Process process = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo();
process.StartInfo = startInfo;

startInfo.UseShellExecute = false;
startInfo.RedirectStandardError = true;

startInfo.FileName = "msiexec.exe";
startInfo.Arguments = string.Format(UninstallCommandString, "Product Code");

process.Start();

Вы можете вызвать исполняемый файл для деинсталлятора с помощью system.диагностика.

Что-то вроде следующего должно сделать трюк:

System.Diagnostics.Process.Start("/path/to/uninstall.exe", "arguments for uninstaller if needed, else don't bother with this arg");

Это быстро и грязно и /должно / работать. Надеюсь, это поможет.

Edit-только что понял, что вы хотите сделать это с экрана add remove software. Я все равно оставлю это здесь, но это моя ошибка.