ソリューションエクスプローラに追加したフォルダ中の実行ファイルのパス指定

質問 ソリューションエクスプローラに追加したフォルダ中の実行ファイルのパス指定

  • 2007年7月12日 7:10
     
     

    VS.2005 C#

    Windowsアプリですが、ソリューションエクスプローラにフォルダ(Exe)を追加して

    その中に、実行ファイルをコピーしてセットしました。

    そのコピーした実行ファイルを以下のように、コーディング中に指定したいのですが、

    ”パスが見つかりません”とエラーが表示されます。

    パスがやはりおかしいでしょうか?。

    それとも、このようなやり方は出来ないのでしょうか。

    調べはしたのですが・・・

     

    Process p = new Process();
      p.StartInfo.FileName = "/Exe/実行.exe";


     

すべての返信

  • 2007年7月12日 8:43
     
     
    その実行ファイルの「出力ディレクトリにコピー」が"コピーしない"になっているのではないでしょうか。
    "常にコピーする" か "新しい場合はコピーする" に設定すれば、出力ディレクトリ(bin フォルダ)内に実行ファイルがコピーされると思います。
    まずは、出力ディレクトリ(bin フォルダ)内に実行ファイルが存在するかどうかを確かめてみてください。
  • 2007年7月22日 6:27
     
     

    有難うございます。

    "/"の前に、"." が必要なのですね。

    試した思っていましたが、再度、試すとこれで、いけました。

    失礼致しました。

     

    Process p = new Process();
      p.StartInfo.FileName = "./Exe/実行.exe";

     

  • 2007年7月22日 8:57
     
     
     fjdsskl2 さんからの引用
    "/"の前に、"." が必要なのですね。

    あまり関係ないような気もするんですけど...

    一つ注意する点として C# の場合 / はエスケープ文字として扱われます。
    そのためパスを表す文字列は
    "Exe//実行.exe" のように / を二つ続けて設定するのが正しいです。
    それがわずらわしい場合は @ を使用します。すると
    @"Exe/実行.exe" のようにエスケープ文字を気にすることなく設定することができます。

    エスケープ文字や @ 記号の使用についてはこちらを参照してみてください。
    文字列の使用 (C# プログラミング ガイド)