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の1つを使用します。

そうすれば、値をハードコーディングしたり、ユーザーに入力を要求したりすることなく、正しいパスを推測できます。

于 2012-10-25T09:39:16.793 に答える