0

誰かが私に相対パスにナビゲートする方法を説明できますか

AppDomain.CurrentDomain.BaseDirectory

または同様のもの?

単体テストの中からWebサービスを起動したい。上記のように、またはシステムリフレクションバージョンを使用して単体テストの相対パスを取得する方法は知っていますが、それを使用してナビゲートする方法がわかりません。

単体テストは、サービスとは別のフォルダーを持つVisual Studioの別のプロジェクトにありますが、両方とも同じソリューションにあるため、相互の相対パスは常に同じですが、それを使用するかどうかはわかりません

Process.Start

だから私はそれをサービスを開始するように言うことができます。

誰かが知っている場合は私に知らせてください、または偶然にTFS自動ビルドでWebサービスを開始する別の方法を知っている場合。

4

1 に答える 1

2

「System.Diagnostics.ProcessStartInfo」というオブジェクトがあり、外部プロセスを呼び出したり、.NETアプリケーションからアプリケーションを起動したりするのに役立ちます。フォルダへの移動は、ある種のPath.Combine()メソッドを使用して実行でき、アプリケーションが存在するのと同じパスをProcessStartInfoオブジェクトの「WorkingDirectory」プロパティに渡すことができます。

var processStartInfo = new ProcessStartInfo(string.Format("cmd /c start some service"))
            {
                WorkingDirectory = ==PathWhereApplicationIs==,
                WindowStyle = ProcessWindowStyle.Hidden,
                ErrorDialog = false,
                CreateNoWindow = true,
                RedirectStandardOutput = true,
                RedirectStandardError = true,
                UseShellExecute = false,
            };

上記のコードスニペットでは、cmdはコマンドプロンプト、/ cはいくつかの引数を渡していることを示し、残りは実行したい任意のコマンドにすることができます

于 2012-11-22T12:58:33.813 に答える