使用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之一 。
然后,您可以推断出正确的路径,而无需对任何值进行硬编码或必须向用户请求输入。