3

我一直在互联网上寻找这个,但我找不到它。

有没有办法通过 C# 触发卸载程序(从程序和功能屏幕)?还是出于安全目的,这被 Windows 阻止了?

4

3 回答 3

5

您可以使用msiexec.exe。您可以简单地使用其卸载应用程序product code。使用命令,您可以设置是否在卸载过程中显示 UI 或使其成为静默卸载,

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

  • /qn:设置用户界面级别:无
  • /qb:设置用户界面级别:基本 UI
  • /qr:设置用户界面级别:简化 UI
  • /qf:设置用户界面级别:完整 UI(默认)

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();
于 2013-10-24T07:58:41.587 回答
1

看看C# - 使用 C# 安装和卸载软件以编程方式卸载程序

于 2013-10-24T07:47:30.457 回答
0

您可以使用 system.diagnostics 为卸载程序调用可执行文件。

像下面这样的东西应该可以解决问题:

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

它又快又脏,/应该/工作。希望有帮助。

编辑 - 刚刚意识到您想从添加删除软件屏幕执行此操作。无论如何我都会把它留在这里,但我的错误。

于 2013-10-24T08:01:15.997 回答