2010-03-12 110 views
35

目前,我有一個包含域層基礎和溶液B的二進制文件從溶液A.參考溶液A,有沒有辦法從一個直通調試其他與視覺兩個實例工作室開放(每個解決方案一個)。我讀過,您可以將解決方案A中的現有項目添加到解決方案B.是否有其他解決方案可行?我試着直接將解決方案A附加到解決方案B中正在運行的可執行文件,但它不會讓我將多個調試器附加到同一個應用程序。調試通過在Visual Studio中不同的解決方案

我應該注意到,當我踏進一塊它會自動調出解決方案B的Visual Studio實例中的代碼進行調試時,我認爲這是可以接受的,但是您不能只設置任意斷點並等待代碼以這種方式擊中它們。

謝謝

回答

30

有沒有辦法讓Visual Studio中調試同一過程的兩個實例。這是Windows的限制,而大多數其他操作系統中最多隻有一個進程可以調試另一個進程。

它雖然來調試可執行文件不屬於您的解決方案的一部分,完全支持的方案。如您所知,你可以愉快地步入從溶液B二進制文件,同時從溶液A.調試

的一個項目將在這裏礙事,雖然被命名爲「僅我的代碼」的調試功能。這是一個功能,旨在將調試體驗最小化爲解決方案中的代碼。非常適合普通解決方案,但在調試任意二進制文件時很糟糕。這很可能會導致圍繞你所看到的斷點的許多問題。你會希望通過執行以下操作

  • 工具來禁用它 - >選項 - >調試
  • 未選中「啓用僅我的代碼」
+4

也見克里斯的答案。您可以在解決方案B中將解決方案A的源代碼設置爲斷點,而無需向解決方案添加項目。將Visual Studio指向A的PDB文件(在編譯期間創建,請參閱Chris的答案),然後在解決方案B中打開A的源文件。您可以打開或拖放,您不必將其添加到解決方案中。值得注意的是,有些時候斷點看起來是空的(就像它不會被打到),直到它被裝載,這可能是在運行時。 – Vimes 2013-07-31 20:24:22

+0

@JohnB當你說「drag-n-drop」時,你是什麼意思?如果我從VS 2010的一個實例的解決方案資源管理器中拖動文件到另一個實例,唯一有效的拖動目標是文本編輯器,它只是將文件的副本粘貼到打開的文檔中。如果我從VS的一個實例拖動編輯器選項卡,我不能將它放到另一個實例中。有沒有一個快速簡單的方法來做到這一點,不涉及文件 - >打開? – Weeble 2014-03-06 14:07:39

+2

@Weeble,我將源文件從Windows資源管理器拖到Visual Studio文本區域。對我來說,這會打開文件。 – Vimes 2014-03-06 22:51:53

14

如果您明確加載解決方案A中的符號,該怎麼辦?

如果你去工具 - >選項 - > Debugging->符號,你可以在從解決方案A.

然後你可以看到,如果符號是從你的二進制文件通過將加載的.pdb文件指向它Debug-> Windows->調試時模塊。

14

您只能有一個調試器一次調試一個進程。這意味着您只需要打開一個Visual Studio實例。

但是,你可以打開的.cpp /的.cs /無論從溶液B文件到一個解決方案的Visual Studio的副本,並設置斷點。即使這些文件實際上不是解決方案的一部分,它仍然可以工作。

+5

我一直在使用VS 13年,只是從你身上學到的是一個可以打開未在方案提交正在調試,並仍然是一個源文件允許設置的斷點(如果找到了pdb,並且源文件位於相同的位置,可能還有其他條件,但仍然會進行調查)。非常感謝院長 – buckley 2015-07-29 11:25:26

1

有一個簡單的解決這一點。

打開解決方案文件並運行它。停止要附加處理的第二個解決方案實例,但確保端口正在運行。現在您可以將端口進程附加到第一個解決方案實例並調試到魔術。

1

這是我做的。

說從溶液中的一個項目,是指從溶液B的一個項目,我想調試到從溶液B項目的項目。

在Visual Studio中打開解決方案B.將項目屬性設置爲「使用本地IIS Wb服務器」,設置項目Url並創建虛擬目錄。

在另一個Visual Studio實例中打開解決方案A.將項目屬性設置爲「使用本地IIS Wb服務器」並選中「使用IIS Express」,設置項目Url並創建虛擬目錄。

按F5並開始調試Visual Studio的解決方案B實例。 然後按F5並開始調試解決方案Visual Studio的一個實例。 現在,Visual Studio的兩個實例都將處於調試模式。 現在從解決方案A開始,您應該能夠調試到解決方案B,就像兩個項目都在同一個解決方案中一樣。

這裏的關鍵是爲其中一個項目使用「使用IIS express」和「本地IIS Web服務器」。這會讓你有兩個調試器一次運行。

+0

這隻有在您調試Web應用程序時纔有效。我相信OP正在處理可執行文件。 – 2015-04-13 16:42:50

0

確保.dll和.pdb在bin中。您將能夠調試到另一個Visual Studio中打開的其他解決方案。

我們通常會在其中引用dll的文件夾(例如Dependencies)。將dll放在這個文件夾中。當我們構建引用的項目時(使用構建事件,還有其他方法),Dll被推送到這個文件夾。

2

這可能會很晚,但對於任何仍需要真正簡單解決方案的人來說,只需將您的解決方案屬性更改爲使用多個啓動項目設置並設置要同時啓動的項目。

請點擊此鏈接

Debug Multiple Projects at the Same Time in Visual Studio

+0

不過,啓動多個項目(例如,如果您需要運行服務器)和僅引用外部項目以便您可以插入代碼之間是有區別的。 – 2017-10-20 20:49:39

相關問題