使用C#.NET执行外部EXE

我正在C#中执行一个进程,但我希望能够在不指定路径的情况下执行此操作。 我在哪里可以将可执行文件放在项目中,以便代码找到指定路径的wuthout?

目前我有:

ProcessStartInfo psi = new ProcessStartInfo(); psi.FileName = @"C:\Docs\wkhtmltopdf.exe"; 

哪个运行正常,但我想最终得到的是:

  ProcessStartInfo psi = new ProcessStartInfo(); psi.FileName = "wkhtmltopdf.exe"; 

我已经尝试将EXE放在项目的一个文件夹中,在项目的根目录中,在项目的bin文件夹中 – 都没有成功。

 ProcessStartInfo psi = new ProcessStartInfo(); psi.FileName = "wkhtmltopdf.exe"; psi.WorkingDirectory = Environment.CurrentDirectory; Process proc = Process.Start(psi); 

我现在在猜,但也许这将是helfpul?

http://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.workingdirectory.aspx

只需将此路径设置为Environment.CurrentDirectory

随时放置二进制文件,并将此文件夹添加到系统的%PATH%变量中

我会使用Enviroment.SpecialFolders之一 。

然后,您可以推断出正确的路径,而无需对任何值进行硬编码或必须向用户请求输入。