2008-09-16 75 views
9

我有VS2005,我目前正在嘗試調試一個ASP.net的web應用程序。我想在代碼後面修改一些代碼,但每當我停在斷點處並嘗試編輯某些東西時,我都會收到以下錯誤消息:「調試器已連接到已運行的進程時,不允許進行更改或者正在調試的代碼被優化。「調試時編輯源代碼

我很確定我已啓用所有「編輯並繼續」選項。有什麼建議麼?

回答

6

該應用程序實際上是從您的代碼的編譯版本運行。如果你修改它,它將不得不重新編譯它,以使你的更改工作,這意味着它將需要換出新編譯版本的運行版本。這是一個相當困難的問題 - 這就是爲什麼我認爲微軟已經無法做到這一點。更多的是保護你免於思考當他們真的沒有做出改變時。

+0

>這是更好地保護你的一些思考進行了更改,當他們真的不是。 這是由顯示所述源代碼顯示從所述一個編譯不同的消息避免。我似乎記得VS曾經這樣做過,其他產品也這樣做。 – mayu 2013-01-03 03:16:43

1

允許您在運行時對*.aspx文件進行更改,您可以點擊網頁實例的刷新以立即查看這些更改。但是,程序運行時,您無法更改*.cs/*.vb*.designer.cs/*.designer.vb文件。

16

這看起來可能不符合直覺,但轉而編輯並繼續。

可能還有另一個「允許我編輯只讀文件」或「允許我編輯,即使在我正在調試時......也不是真的!」設置某處,但我沒有2005年看看檢查。

在2008年,關閉編輯和繼續,而它的運行,你可以編輯(但這些更改不會appplied)

如果你確實要使用編輯和繼續,你還必須啓用它該項目位於項目設置的Web選項卡上。

+1

非常感謝! – youwhut 2011-03-11 11:05:33

2

對於Asp.net,可以考慮兩種類型的「編輯並繼續」。

一個是經典的編輯和刷新瀏覽器。這是有效的,因爲瀏覽器刷新重新編譯除了預編譯的代碼後面的文件。這不稱爲編輯並繼續,但實際上它提供了類似的效果。在這種模式下,您不能更改文件後面的代碼,因爲它們是預編譯和部署的,但您可以更改其他任何內容。

另一種模式允許您更改文件後面的預編譯代碼,但沒有別的......(這是Chris Bilson提到的需要在ASP.Net的項目屬性中設置的模式)。在這種情況下,您正在使用調試器的編輯和繼續功能,該功能對ASP.net知之甚少。調試器只看到一個加載的.Net程序集,並且可以在調試器中停止時對其進行修改,因爲解決方案中有一個項目聲稱知道如何構建它。在這種情況下,您將無法修改會妨礙調試會話的事情。然而,這種方法是在運行代碼時更改代碼的唯一方式,而不需要刷新瀏覽器。

+0

那是偉大的,設置啓用並繼續Web項目選項卡上解決我的問題。 – Greg 2010-01-12 14:15:43

-1

檢查您是否處於發佈模式。 在發佈模式下,您無法在調試時編輯代碼。只要改變模式調試

1

我尋找這個在Visual Studio 2008的WAP(Web應用程序項目),並花了兩天時間才找到解決方案,所以在這裏是希望它可以幫助別人:

有兩個位置必須被檢查,下一個IT工具 - 選項 - 調試 - 編輯並繼續,啓用編輯並繼續,另一種是右鍵單擊項目 - 屬性 - 網絡啓用編輯並繼續

+0

感謝羅布。我總是忘記第二個地方。 – dustinson 2010-07-08 17:44:47