使用C#.NET执行外部EXE

时间:2012-10-25 09:26:24

标签: c# asp.net

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

目前我有:

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

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

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

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

4 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:2)

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

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

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

即可

答案 2 :(得分:0)

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

答案 3 :(得分:0)

我会使用其中一个Enviroment.SpecialFolders

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