我试图使用以下调用通过C#卸载应用程序:
msiexec.exe /x {my-product-code} /qn如果没有/qn开关,就会出现一个对话框,询问您是否要卸载。/qn开关会取消这个对话框,但它似乎也会导致对话框结果的隐式"No“,因为应用程序不卸载。如果我关闭了/qn开关,我将得到预期的对话框,如果我选择“是”,应用程序就会卸载。
如何使用/qn开关而不导致对确认的隐式“否”?
发布于 2015-05-14 19:24:37
正如PhilDW在上面的评论中所指出的,问题是需要提升特权。即使我是管理员,使用/qn开关也会取消确认对话框(正如预期的那样),确认对话框被用作卸载可以使用的管理确认。解决办法如下:
Process process = new Process();
process.StartInfo.FileName = "msiexec.exe";
process.StartInfo.Arguments = string.Format("/x {0} /qn /l*v uninstall.log", productCode);
process.StartInfo.UseShellExecute = true; // added to elevate privileges
process.StartInfo.Verb = "runas"; // added to elevate privileges
process.Start();
process.WaitForExit();https://stackoverflow.com/questions/30241900
复制相似问题