我有这个非常简单的程序
Process process = new Process();
process.StartInfo.FileName = @"psexec";
process.Start();
但是当我运行它时,调试说“系统找不到指定的文件”
如果我有相同的程序并通过“记事本”更改“psexec”,它将起作用并打开记事本。
Process process = new Process();
process.StartInfo.FileName = @"notepad";
process.Start();
这很奇怪,因为我在System32中使用了psexec,如果使用Windows-Run运行“psexec”,它就可以工作。
提前感谢您的帮助。
更新:我指定完整路径@="C:\Windows\System32\PSexec.exe"
并且它不起作用。但是,如果我将Psexec移动到,例如@"D:\psexec.exe"
它就可以了!
为什么会发生这种情况?
答案 0 :(得分:3)
在64位操作系统上运行来自c:\ windows \ system32的程序很麻烦。解决方法是Project + Properties,Build选项卡,将Platform目标更改为AnyCPU。或者将文件也复制到c:\ windows \ syswow64。
或者只是不将它放在Windows目录中,它不是属于那里的特定于操作系统的文件。适当的位置是与EXE相同的目录。
您可以在this MSDN article中了解有关文件系统重定向器的更多信息。
答案 1 :(得分:0)
尝试指定'psexec'的完整路径
有任何属性'WorkingDirectory',这可能会有帮助。