2

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

目前我有:

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

哪个运行良好,但我想结束的是:

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

我尝试将 EXE 放在项目的文件夹中、项目的根目录中、项目的bin文件夹中 - 均未成功。

4

4 回答 4

6
ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = "wkhtmltopdf.exe";  
psi.WorkingDirectory = Environment.CurrentDirectory;
Process proc = Process.Start(psi);
于 2012-10-25T09:38:06.873 回答
2

我现在在猜,但也许这会有所帮助?

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

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

于 2012-10-25T09:34:43.407 回答
0

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

于 2012-10-25T09:31:46.773 回答
0

我会使用其中一个Enviroment.SpecialFolders

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

于 2012-10-25T09:39:16.793 回答