Visual Studio(C#)中的“热代码替换”

3
我之前使用Eclipse IDE开发Java,并习惯了一个名为“HCR”的功能。据我所知,这个功能只在Eclipse中可用。它允许您在应用程序正在调试时替换代码。无需暂停或停止调试会话,只需修改文件,保存后在JVM中替换代码即可。如果不太清楚,可以在这里了解更多细节
现在,我想知道Visual Studio中是否有类似的功能(无论是功能还是扩展)。我知道有“编辑并继续”功能,但这需要暂停应用程序执行,并且不能在代码运行时编辑文件。

是的,VS支持这个功能。但你必须先通过断点调试编辑后的代码。 - user586399
你只有编辑和继续。 - Lasse V. Karlsen
2
更换代码时,“热替换”是否真的有所不同?“编辑并继续”背后的想法是尽可能安全地进行这种“热修补”——允许您在应用程序执行某些操作时更改代码,听起来像是随机崩溃应用程序的好方法 :) - Luaan
@Luaan 真的吗?至少在VS2010中,我被这种烦人的行为困扰着。 - MakePeaceGreatAgain
@HimBromBeere 是的,我刚在VS2015中检查了一下,确实可以工作 :) 可能仍有许多情况无法正常工作,但每个新版本的VS都在变得更好 :) - Luaan
显示剩余5条评论
1个回答

0

当您进入代码调试(例如通过断点或异常)时,您可以进行编辑。但是,在调试会话中,您可以编辑的内容有一些限制。

基本上,您只能更改类内部成员的行为,而不能更改其外部行为。也就是说,您不能更改成员的参数列表、返回值甚至名称。此外,还有一些令人烦恼的问题,如lambda表达式、委托和一些代码合同,这些都会导致调试器无法继续工作。

在调试过程中,您可能希望更改其中一些功能,但VS设计师选择了一种高度安全的方法,以确保您的更改不会在调试期间使应用程序崩溃。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接