2013-02-13 58 views
0

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

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(); 

什么可能在这里处理交易吗?我再次得到没有错误,它只是忽略它,它是interesing,因为我可以在那里做所有的事情,只是运行日期作为命令,它工作正常,但它不会运行msi和exe文件需要安装。我找不到有关它在64位而不是32位工作的任何信息。谢谢!

+0

您是否尝试捕获输出和/或错误流?这个错误很可能在你没有向我们显示的“命令内容”中。 – 2013-02-13 05:27:38

+0

是的,我经历了这一点,无论我做了什么,我都无法让它看到一个错误,但它是那些问题的命令。 – KJ3 2013-02-13 06:37:34

回答

0

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

相关问题