【发布时间】:2013-12-07 18:42:40
【问题描述】:
我正在尝试使用 REBOOT=ReallySuppress 命令行参数卸载 C# 中的程序,但 Windows 进程监视器(Rohitab 的 API 监视器)显示我所需的命令行参数实际上并未传递给 msiexec.exe。我的代码有缺陷吗?
public static List<ManagementObject> programs;
public void Uninstall(int index)
{
object[] args = {"REBOOT=ReallySuppress", "REMOVE=ALL"};
programs[index].InvokeMethod("Uninstall", args);
}
...
程序列表在代码中的其他地方初始化并且工作正常。 API Monitor 显示 msiexec.exe 进程使用以下参数启动:
"C:\Windows\SysWOW64\\msiexec.exe" /i "C:\Users\Joel Denning\AppData\LocalLow\Sun\Java\jre1.7.0_45.msi" /qn METHOD=joff
没有我传入的REBOOT=ReallySuppress 或REMOVE=ALL 参数。
【问题讨论】:
-
你能解释一下为什么你的代码示例定义和初始化
args吗?您说问题出在命令行参数上,但您的代码 sn-p 中没有使用它们...
标签: c# .net uninstallation restart apimonitor