0

我有调用 System.Diagnostics.Process 的 ac# exe 来在 cmd.exe 中运行一些命令,被动地安装几个安装程序。我一直在我的机器上测试它(64 位 win8,它工作得很好,但是当我在 32 位版本的 Windows XP 上运行 exe,程序只是跳过进程部分。没有抛出错误,它只是忽略它们。这是我的代码:

System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo("CMD.exe", @"/C [command stuff]}");
psi.CreateNoWindow = true;     
psi.UseShellExecute = false;   
System.Diagnostics.Process diag = System.Diagnostics.Process.Start(psi);
diag.WaitForExit();
diag.Close();

这里可能有什么交易?我再一次没有错误,它只是忽略它。这很有趣,因为我可以在那里完成所有这些,只需运行 date 作为命令,它工作正常,但它不会运行安装所需的 msi 和 exe 文件。我找不到任何关于它在 64 位但不是 32 位工作的信息。谢谢!

4

1 回答 1

0

所以我发现我的问题是什么。在运行 .msi 进行安装之前,我使用语法 C:/folder/setup.msi 更改了目录。这在我的电脑上工作正常,但在 XP 上没有做任何事情。事实证明它不知道如何处理正斜杠。我所要做的就是将其更改为 C:\folder\setup.msi,它工作正常。我觉得自己像个白痴,希望这对某人有所帮助,尽管哈哈。

于 2013-02-13T06:36:51.840 回答