我正在尝试为不在我们网络上的用户启动slui.exe,以便他们可以通过我们的MAK密钥使用c#程序验证他们的Windows安装,但是当编译为.exe时,该过程将立即退出;如果我从VS 2010以调试模式运行程序它将成功运行,或者如果我在安装了VS2010的机器上启动.exe,它也将成功运行。我的代码如下:
string path = Environment.SystemDirectory;
ProcessStartInfo startInfo = new ProcessStartInfo(path + "\\slui.exe");
startInfo.Arguments = 4;
Process p = new Process();
p.StartInfo = startInfo;
p.Start();
p.WaitForExit();
我尝试过运行进程资源管理器,但在尝试运行此代码时,它并未显示任何进程。
.net会有什么东西吗?我在两台机器上运行.net 4,所以我不认为这是问题所在。
我真的很困惑,为什么这个代码在我的开发机器上可以在调试模式下工作,也可以编译成.exe,但在其他机器上却不行;我必须在某个地方错过一个依赖。
非常感谢任何帮助!
答案 0 :(得分:1)
请检查EventLog,如果进程在启动时崩溃,它将在那里列出。 您的症状的一个很好的例子是,如果您尝试启动一个不存在依赖关系的进程,例如(即,slui.exe引用了slui.dll,但找不到它。)