2012-11-22 48 views
0

誰能向我解釋的相對路徑如何導航使用開始通過代碼的應用程序,在C#

AppDomain.CurrentDomain.BaseDirectory 

或類似的東西相對路徑?

我想在單元測試中啓動一個web服務。我知道如何得到像上面那樣的單元測試的相對路徑或使用系統反射版本,但我不知道如何使用它進行導航。

單元測試是在Visual Studio中的一個單獨的項目與單獨的文件夾比服務,但他們都在相同的解決方案,所以路徑相對於另一個總是相同的,但我不知道用於與

Process.Start 

所以我可以告訴它開始服務。

如果有人知道請讓我知道,或者偶然你知道另一種方式在TFS自動構建中啓動Web服務。

回答

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是我們傳遞一些參數的指示,其他的可以爲要執行

+0

我注意到path.combine任何命令()雖然搜索,但我不明白如何使用它爲我想要的。我什麼都沒有確切的。我有我的單元測試的相對路徑,我可以弄清楚如何瀏覽文件夾樹(例如:上3個目錄,然後輸入x文件夾,然後在y文件夾等內) – user1752736

+0

可以使用Directory.GetParent(「一些路徑「)三次導航3節目錄了再告Path.Combine(」 3directoriesUpPath」,‘newFolderName’),以在最後的目錄去,你有你的應用程序來執行。 – Jsinh

+0

哦,所以這是如何。我覺得必須有一些命令從相對路徑中導航。謝謝。 – user1752736

相關問題