MSI退出代码1625在编程运行MSI时
-
08-10-2019 - |
题
退出代码1625是“系统策略禁止此安装。与您的系统管理员联系。”
我正在做的就是这样称呼:
Process installProcess = Process.Start(msiPath, "/quiet");
如果我手动打开MSI,我可以正常运行。这在Windows Server 2008上...
这样做的目的是使用最新版本自动更新我的.NET表单程序。有人知道什么样的设置导致了这种情况?我的意思是,客户将使用Vista/7/XP,但是我仍然需要知道哪种安全设置会破坏我的计划。
解决方案
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.Arguments = "/i " + "\""+Directory.GetCurrentDirectory()+"\\"+msiPath +"\"" +" /q";
startInfo.FileName = "msiexec.exe";
startInfo.Verb = "runas";
Process installProcess = Process.Start(startInfo);
以这种方式打电话给MSI可以做到这一点。
事实证明,我认为是某种UAC问题。 runas动词以某种方式提高了程序的权限。即使我的UAC提示在Server 2008上被禁用,我仍然必须这样做才能解决。
不隶属于 StackOverflow