2008-09-16 101 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