VS2017中Web Application项目修改.vb文件后无法即时刷新问题
太懂这种落差了——用了15年多的“网站”模板,改完response.write("test this out")存个文件,刷新浏览器1秒就能看到效果,换成官方推荐的Web Application反而要重启Chrome才生效,这体验确实糟心。咱们来把这个问题搞定:
开启「编辑并继续」功能
Web Application默认的编译模式和传统网站模板不一样,右键你的项目 → 打开「属性」→ 切换到「生成」标签,一定要勾选启用编辑并继续。这个功能会让VS在你修改代码后自动做增量编译,不用重启整个应用就能生效。清理IIS Express缓存
IIS Express有时候会把编译好的程序集缓存起来,导致修改不生效。试试这几步:- 右下角托盘找到IIS Express图标,右键退出当前实例
- 手动删除项目根目录下的
bin和obj文件夹,然后重新生成项目 - 启动项目时选「启动但不调试」(快捷键Ctrl+F5),这种模式下VS不会附加调试器,缓存问题会少很多
禁用浏览器缓存
虽然你说要重启Chrome才生效,但也可能是浏览器缓存了旧页面。按F12打开Chrome开发者工具,切换到「Network」标签,勾选禁用缓存(要保持开发者工具打开才生效),这样刷新时浏览器会强制从服务器拉最新内容,不用重启浏览器。确认修改的代码位置
如果你改的是App_Code文件夹外的后台类文件,Web Application需要编译,但「编辑并继续」应该能覆盖大部分场景。要是改了Global.asax或者web.config这类配置文件,那确实得重启应用,但普通页面的后台代码(比如.aspx.vb)应该不用。
其实Web Application和传统“网站”模板的核心差异就是编译机制——网站是文件系统驱动的动态编译,Web Application是项目文件驱动的预编译模式,调整好上面的设置,就能回到你熟悉的即时刷新体验啦。
内容的提问来源于stack exchange,提问作者user2860427

