簡體   English   中英

如何在同一C#解決方案中以編程方式從“啟動”項目中啟動第二個項目?

[英]How to programmatically start the second project from the “StartUp” project in the same C# solution?

我有兩個項目的C#VS 2012解決方案:ProjectA和ProjectB。 為了簡單起見,兩個項目都是控制台應用程序。

首先需要啟動ProjectA,因此將其設置為解決方案的“啟動項目”。 當我在調試器下使用F5運行ProjectA時,需要執行一些操作,然后在同一調試器下啟動ProjectB。 因此,如果我在ProjectB第一行中設置了斷點,則調試器將中斷。

有什么辦法可以做到嗎? 當前,我使用Process.Start(“ path_to_projectB.exe”),但是需要替換為“ Process.StartUnderSameDebugger(” path_to_projectB.exe“)”。 我想使用為ProjectB啟動ProjectA的VS調試器實例。

請注意,我不想在Visual Studio中使用“啟動多個項目”選項。 如果執行此操作,則兩個控制台應用程序將同時啟動(不需要),並在同一調試器下啟動(需要)。 在開始第二個過程之前,第一個過程必須執行一些操作,這就是為什么我不能使用這種方法的原因。

另外,當我稍后停止調試器時,兩個進程(來自ProjectA和ProjectB的控制台應用程序)也應關閉。

您始終可以在第一個項目啟動后手動右鍵單擊-調試第二個項目-當調試器停止時,兩個項目都將結束。

這些選項

  1. 創建一個模擬給定測試場景的單元測試。
  2. 創建引用項目或將目標CS文件作為linked filesAdd Existing Item -> Add (選擇下拉add as link ))的項目C,並復制需要測試的過程。

Visual Studio團隊發布了一個Visual Studio擴展,該擴展允許自動將子進程附加到當前的調試器: 子進程調試Power Tool簡介

因此,您可以使用Process.StartProjectA啟動ProjectB ,它將自動將調試器附加到第二個進程。

在Visual Studio 2013及更高版本的庫中可用。

您也可以在此處查看我的答案以了解如何將當前調試器附加到您可能啟動的任何進程。 請注意,它不會像Visual Studio擴展那樣直接,因為在過程開始后將附加調試器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM