C#MsiExec将程序安装到错误的位置

时间:2014-10-06 12:37:22

标签: c# windows-installer msiexec

我使用C#代码使用运行msiexec的进程安装程序,为其提供MSI文件的路径。 这是我使用的代码:

string pathtoMsiFile = "\"" + msiPath + msiName + "\"";
Process p = new Process();
p.StartInfo.FileName = "msiexec.exe";
p.StartInfo.Arguments = "/i " + pathtoMsiFile + " /quiet";
p.Start();
p.WaitForExit();

奇怪的是,当我尝试安装程序时,对于某个版本,它会将其安装到我期望C:\path上的正确位置,但安装到D:\path的版本不同某些原因。如果我手动打开MSI,则默认位置为C:\path。知道为什么吗?

1 个答案:

答案 0 :(得分:1)

最终看来问题出在msiexec尝试安装的程序上。 我不是那个程序的开发者,所以我自己也不能知道这个问题。 该程序在其安装中有一个自定义操作,它设置一个表示要安装的驱动器的变量作为安装操作系统的驱动器。问题是,此操作仅通过安装的UI(双击MSI时)调用,而不是在使用安静的CLI命令进行安装时调用。