VS2017更新后Azure Function Apps报类库输出类型无法直接启动错误
解决Azure Function Apps抛出"A project with an Output type of Class Library cannot be started directly"错误
我之前也碰到过一模一样的问题!折腾了好一阵才搞定,给你几个排查方向试试:
检查项目调试启动配置
右键你的Azure函数项目 → 属性 → 调试选项卡,确认启动选项是Azure Functions而不是直接启动项目本身。VS更新后有时候会意外重置这个配置,导致直接尝试启动类库项目,就会抛出这个错误。另外也可以在VS顶部的调试目标下拉菜单里,确认选择的是Azure Functions。核对Azure Functions工具版本
因为你的同事机器能正常运行,大概率是你本地的Azure Functions工具版本和项目不兼容。打开VS2017的「工具」→「扩展和更新」,找到「Azure Functions and Web Jobs Tools」,查看版本号,然后和同事机器上的版本对比,要么更新到一致版本,要么尝试回退到兼容的旧版本。清理项目缓存与生成文件
更新VS后残留的缓存经常会搞出奇怪问题:- 删除项目根目录下的
bin和obj文件夹 - 点击VS菜单「生成」→「清理解决方案」
- 找到解决方案根目录下的隐藏
.vs文件夹并删除
做完这些后重启VS,重新生成项目再尝试运行。
- 删除项目根目录下的
检查项目文件(.csproj)配置
右键项目 → 卸载项目 → 编辑.csproj文件,确认以下配置:- 输出类型正确:
<OutputType>Library</OutputType>(Azure函数项目本来就是类库,无需改成Exe) - 已引用正确的SDK包:确保包含
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="x.x.x" />,且版本号和同事项目一致。
- 输出类型正确:
确认项目类型识别正确
如果以上都没用,可能VS更新后把你的Azure函数项目识别成了普通类库项目。可以尝试重新创建一个空的Azure函数项目,把现有代码迁移过去,或者在现有项目里重新添加Azure函数的相关模板配置。
内容的提问来源于stack exchange,提问作者Anil C
相关产品推荐
相关产品推荐

