2009-06-01 55 views
4

我一直在C#(​​使用VS2008)開發應用程序很長一段時間,大約一週前,'編輯並繼續'已停止爲我工作。我可以在調試時編輯代碼,但是現在我對代碼所做的任何小改動都會迫使我停止該項目並重新啓動它。我得到的消息是這樣的:編輯並繼續退出在某些時刻爲我工作

Modifying a 'method' which contains a lambda expression will prevent the debug session from continuing while edit and continue is enabled.

奇怪的是,我還沒有使用lambda的時候發生這種情況。在調試模式下,上週修改相同的代碼塊讓我繼續沒有問題。我在互聯網上進行了各種搜索,以瞭解我能做些什麼來改變行爲。我在網上找到的唯一幫助與調試ASP.NET Web項目直接相關。但是,我的解決方案的這一部分是Windows窗體項目。

問題是什麼?有沒有辦法來解決這個問題?我將不勝感激任何幫助。

回答

2

「使用附加到進程開始調試時,不支持」編輯並繼續「。對於混合模式,組合的託管和本機,調試,SQL調試,Compact Framework(智能設備)項目,調試,不支持」編輯並繼續「在Windows 98或64位調試。「

http://msdn.microsoft.com/en-us/library/ba77s56w.aspx

編輯 - 這種聯繫說VB,但我敢肯定,我有同樣的問題,與原生混合使用C#時,託管代碼和64位調試。

+0

如果你看到我剛纔的評論,我是在錯誤的瀏覽器選項卡中書寫。我有類似的問題,我認爲這是我問的問題。 – 2011-10-05 19:14:33

1

這是一個遠射,但您可能正在使用LINQ - 這只是lambda表達式的語法糖。所以,也許你添加了一些LINQ到你的代碼?

3

只是猜測,但也許你正在調試的方法包含從lambda捕獲的類型。

以下是引用來自here

... ENC [EditAndContinue]可以修改 IL,而不是類型 - 也就是說,它不能 字段或方法添加到一個類型, 刪除類型,或創建一個新的。 捕獲本地 變量的Lambda表達式可能會導致在隱藏類型下創建隱藏類型 。 修改包含lambda 表達式的方法可能會更改捕獲的本地 ,這將需要 更改隱藏類型。因爲C#2.0中同樣 限制已與匿名 方法存在和VS 2005