使用c#安装msi无法正常工作

时间:2014-02-02 13:36:23

标签: c# process install windows-installer

我正在尝试一个接一个地安装3个msi驱动程序。 所有在同一个文件夹中我都使用相同的attrubutes /

我之前已经做过它并且工作正常,但现在我不知道可能出现什么问题。

string attributesToDownload = "REINSTALL=ALL /qb- /norestart";
Process proc = Process.Start("msiexec.exe", string.Format("/i \"{0}\" {1}", driverPath, attributesToDownload));
proc.WaitForExit();
return proc.ExitCode;

奇怪的是: 对于第一个驱动程序,我的ExitCode是1603。 对于第二个驱动程序,ExitCode为0但驱动程序并未真正安装。 对于第三个,它一切正常。

当我尝试直接从具有相同属性的cmd安装第一个和第二个驱动程序时,它已成功安装。 “msiexec / i driverPath REINSTALL = ALL / qb- / norestart”

等待一些想法......

2 个答案:

答案 0 :(得分:0)

知道了,我认为....没有REINSTALL = ALL,唯一的方法(我发现)是卸载当前版本而不是安装新版本

答案 1 :(得分:0)

如果您正在执行REINSTALL = ALL以使其生效,那么您正在更新系统上安装的现有产品。没关系,也许您想要修补现有产品,但您似乎并不知道您不能安装两次相同的产品 - 较新的产品需要补丁或更新,如您的REINSTALL = ALL或主要升级。如果你想卸载旧版本,那么你需要进行重大升级!无需卸载旧版本,因为主要升级会自动执行此操作。