1

自分のプロジェクトの実行中に別のexeを呼び出したいです。

string appRoot =Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

このために、次のパスを取得します: C:\Users\Jeff TungMbp\Documents\Visual Studio 2010\Projects\menuSystemTutorial\menuSystemTutorial\ menuSystemTutorial\bin\x86\Debug\xxxxx.exe

これは私がアクセスしたいお風呂ではありません。

このパスにアクセスしたい: C:\Users\Jeff TungMbp\Documents\Visual Studio 2010\Projects\menuSystemTutorial\menuSystemTutorial\ menuSystemTutorial\xxxxxx.exe

System.Process(@"C:\xxxxxxx")のようなハードコードを実行したくありません。

パスにアクセスしたいのは、プロジェクトに .exe ファイルをインポートしたためです。アクセスしたいパスは、.exe の正確な場所です。

この問題を解決する方法はありますか? または、プロジェクトをセットアップ ファイルとして公開した後に、.exe ファイルをプロジェクトに添付する他の方法はありますか?

ありがとう。

4

1 に答える 1

0

ええとmenuSystemTutorial\xxxxxx.exe、カスタムの状況なしでパスを直接指すことができる方法があるとは思いません。

GetExecutingAssembly()メソッドは現在実行中のコードを含むアセンブリを取得し、Visual Studio はフォルダーの下にプログラム exe を作成するためbin\x86\Debug、それを行う方法がないように思えます。

ただし、元のパスから必要なパスを取得できる場合は、次のstring.Replace()ようなメソッドを使用できます。

string appRoot = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location).Replace(@"bin\x86\Debug\", "");
于 2013-03-23T22:22:29.380 に答える