.NET Function App存在编码错误仍可构建运行问题咨询
.NET Function App 编译错误却能正常运行的问题解答
1. 为什么Visual Studio会构建存在编码错误的解决方案?
- Function App启动逻辑特殊:本地运行依赖Azure Functions Core Tools,Visual Studio可能优先启动宿主进程,若编译错误未影响入口点或被增量编译跳过,就会出现宿主先启动的情况。
- 错误代码未被执行路径引用:如果Startup里的错误代码属于未被调用的分支、或仅在特定条件下触发的逻辑,编译器不会将其视为致命错误(除非项目开启
WarningAsError),仅当作警告处理,不中断构建流程。 - 增量编译机制:VS默认启用增量编译,若之前正确版本已完成编译,增量编译可能跳过错误代码所在模块,直接复用旧编译结果完成构建。
2. 当前运行的是否是旧版本代码?清理重建后仍未解决?
- 不一定是旧版本,但大概率是缓存未彻底清除:清理重建可能没覆盖所有缓存,需手动删除:
- 项目根目录下的
bin和obj文件夹 - 用户目录下的
%LOCALAPPDATA%\AzureFunctionsTools缓存目录
- 项目根目录下的
- 宿主进程未完全终止:停止调试后,
func.exe相关进程可能仍在后台运行,导致启动时加载旧实例。需打开任务管理器结束相关进程后再重新运行。 - 错误代码未进入执行流:如果错误逻辑在当前测试场景下未被触发(比如错误的服务注册但未被请求调用),运行时不会报错,看起来正常,但触发到错误逻辑时会立刻崩溃。
内容的提问来源于stack exchange,提问作者innom
相关产品推荐
相关产品推荐

