退出代码1625是“系统策略禁止此安装。请与您的系统管理员联系。”
我正在做的就是这样说:
Process installProcess = Process.Start(msiPath, "/quiet");
如果我手动打开它,我可以运行msi。这是在Windows Server 2008上...
这样做的目的是使用最新版本自动更新我的.net表单程序。任何人都知道导致这种情况的设置是什么?我的意思是,客户端将使用vista / 7 / xp,但我仍然需要知道哪种安全设置会破坏我的计划。
答案 0 :(得分:2)
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提示在服务器2008上被禁用,我仍然必须这样做才能解决它...奇怪吧?