C:\Test\n4.TestConsole.exe
)。File.Exists(path)
返回true
。File.OpenRead(path)
让我流畅无问题。Process.Start(path)
会抛出System.ComponentModel.Win32Exception
这条消息:
系统找不到指定的文件。
Windows 8 Professional x64 - .NET Framework 4.5
编辑:以下是代码。
public partial class Form1 : Form
{
public string Path { get; set; }
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
// I put a breakpoint here and verify the Path's value is
// C:\Test\n4.TestConsole.exe.
// File.Exists returns true.
MessageBox.Show(File.Exists(Path));
// File.OpenRead doesn't throw an exception.
using (var stream = File.OpenRead(Path)) { }
// This throws the exception.
Process.Start(Path);
}
}
答案 0 :(得分:2)
这可能是一个缺失的DLL或其他依赖项。您可能希望在通过Process.Start(exe_path)
直接运行PATH环境变量时以及通过Process.Start("cmd", "/k " + exe_path)
运行它时对其进行比较。
答案 1 :(得分:1)
试试这个:
private void button1_Click(object sender, EventArgs e)
{
ProcessStartInfo psi = new ProcessStartInfo();
psi.WorkingDirectory = @"C:\Test";
psi.FileName = "n4.TestConsole.exe";
Process.Start(psi);
}