我在 Visual Studio 中逐步执行我的 C# 程序,试图测试生成的 HTML 字符串在进行一些修改后的外观。在我暂停调试器后,修改我的代码,然后继续,更改不会生效。我逐步完成了整个方法,当我查看生成的 HTML 字符串时,它与我修改它之前的相同。只有当我停止运行程序并再次运行时,更改才会生效,这非常繁琐。
它是否以某种方式缓存?
我在 Visual Studio 中逐步执行我的 C# 程序,试图测试生成的 HTML 字符串在进行一些修改后的外观。在我暂停调试器后,修改我的代码,然后继续,更改不会生效。我逐步完成了整个方法,当我查看生成的 HTML 字符串时,它与我修改它之前的相同。只有当我停止运行程序并再次运行时,更改才会生效,这非常繁琐。
它是否以某种方式缓存?
调试不生效时的代码更改 (Visual Studio 2017)
实际上,要使用该功能,每次将光标放回更改的部分,然后越过光标,它就会生效。
所以请尝试以下建议:
建议
1)确保在Tools
--> Options
--> Debugging
-->下检查了这些设置General
取消选中--> --> -- > Require source files to exactly match the original version
。Tools
Options
Debugging
General
勾选Managed
和取消勾选Native
-- Tools
> Options
--> Debugging
-->Just In Time
2)关闭VS Instance,删除.vs
隐藏文件夹,,bin
文件obj
夹,然后重新启动您的项目。
3)如果您移植现有项目,则应指定EmbedInteropTypes
为false
.
将其添加到xxxx.csproj
文件中。
<PropertyGroup>
<EmbedInteropTypes>false</EmbedInteropTypes>
</PropertyGroup>
4)Extensions
在-->下禁用任何第三方扩展Manage Extension
5)确保您使用调试模式
如果你的项目是旧VS版本创建的,尝试在VS2017中新建一个项目,然后将旧项目的内容迁移到新项目中进行测试。(不确定项目是否由旧的 VS 版本创建)
注意,在不同版本的vs中,可能会有些不同,如果是老项目,在VS2017中这个功能可能会有些问题。
希望它可以帮助你。