2013-01-25 50 views
5

我从来没有见过这个,不知道它是什么造成它。Visual Studio 2012 - 变量从本地窗口丢失

当我在下面的代码的末尾放置一个断点时,elapsedSeconds变量不在本地窗口中列出。如果我尝试观看它,则Value =“名称'elapsedSeconds'在当前上下文中不存在”。这怎么可能?

public ActionResult Index() 
{ 
    Stopwatch sw = Stopwatch.StartNew(); 

    var userID = WebSecurity.GetUserId(User.Identity.Name); 

    var model = ModelHelper.GetModel(userID); 

    long elapsedSeconds = 0; 
    elapsedSeconds = sw.ElapsedMilliseconds; 

    return View(model); 
} 
+3

它是否已在发布版本中进行了优化,因为它没有效果? – RichieHindle

+0

Holy Crap ....对我的防守来说,这是凌晨,我还没有喝过咖啡。谢谢@RichieHindle。对于任何绊倒这个的人......我只需要将我的构建配置切换回调试......呃。 – SLoret

回答

5

如果您想查看该值,请在“项目”属性窗口中选择“代码优化”属性为“已禁用”。这是编译器优化过程,它使得评估该变量变得不必要。

+0

在调试配置中禁用优化是很好的做法。在发布配置默认情况下,它是“最大化速度” –

0

我在Web项目中也得到了这个。在此线程中重新启动Visual Studio或任何其他解决方案都不能解决它。

我的解决方案是重新启动IIS。之后,我重建了这个项目,并启动了它,让当地人再次工作。

0

重建解决方案有助于获得可变悬停功能。

相关问题