我正在尝试使用“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监视器显示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
参数。
答案 0 :(得分:0)
底层类型是Win32_Product。 此类的方法卸载没有参数。 http://msdn.microsoft.com/en-us/library/aa393941(v=vs.85).aspx
所以你的代码在语法上似乎没问题。