2014-01-16 71 views
35

當調試asp.net代碼(針對IIS運行,並使用Visual Studio 2013)並在斷點處嘗試使用快速監視來評估變量時,我經常會「無法評估表達式」。在調試時無法評估表達式

刪除從asp.net項目文件夾似乎名爲.suo解決該問題

這是一個公認的bug(重裝溶液之後)?現在在多臺機器上的Visual Studio 2013中獲得了很多。

+0

我已經看到了這一點。就我而言,我懷疑它與調試有多個AppDomain加載的進程有關。你的應用程序池中是否有多個應用程序? – jlew

+0

必須在調試模式下編譯?它是單個項目還是包含多重項目? –

+0

@jlew只在應用程序池中有一個應用程序。 tim-schmelter是它編譯爲調試模式... – Tim

回答

5

C#調試引擎嚴重依賴CLR調試器來評估表達式。該消息表明,CLR是在它是無法進行簡單的評估,原因是可以包括狀態下

  • 一個局部變量被優化掉
  • 線程停止在GC不安全的點
  • 以前的函數調用導致調試器進入一個糟糕的狀態,因此進一步的評估根本就不可能
+3

這個消息是我在vs2013中只注意到的東西RTM不記得在vs2013RC(和beta),2012或2010中發現它(調試時)。 – Tim

67

今天我跟VS2013面對它。

轉到工具 - >選項 - >調試 - >常規 - > 滾動至底部的「使用管理兼容模式」,並選擇選項。從博客(以下URL)

截圖: enter image description here 重新啓動你的調試。希望它能幫助別人。

什麼幫助我下面!

+2

非常感謝@Shubh! – Merta

+1

非常感謝.... –

+1

非常感謝。非常好的答案。 :) – Abhid

-1

轉到Tools --> Options --> Environment --> General -->檢查選項 「基於客戶端性能自動調整視覺體驗」。

-1

我已經面對這個具體的項目,原因是Costura.Fody(嵌入所有DLL到執行大會)。

在這種情況下,你可以從FodyWever.xml

禁用 Costura.Fody.

  1. 註釋掉Costura

    <Weavers> 
        <!--<Costura />--> 
    </Weavers> 
    
  2. 禁用乾淨的參考目標(如果有)中*。的csproj

    <!--<Target Name="CleanReferenceCopyLocalPaths" AfterTargets="AfterBuild"> 
        <Delete Files="@(ReferenceCopyLocalPaths->'$(OutDir)% 
        (DestinationSubDirectory)%(Filename)%(Extension)')" /> 
        <Exec Command="DeleteEmptyDirectory.bat" /> 
        </Target>-->