找不到匹配的模板:“HttpTrigger”

may*_*ʎɐɯ 9 .net c# azure azure-functions

我已安装Microsoft 的Azure Functions Core Tools V.3.x。

我正在尝试遵循学习路径。到目前为止,它在处理节点时工作得很好。无论如何,现在我正在尝试使用.net进行实验,所以我所做的如下:

func init
Run Code Online (Sandbox Code Playgroud)

选择dotnet,它会在我的工作区中生成文件。下一个。

func new
Run Code Online (Sandbox Code Playgroud)

并选择HttpTrigger,然后我收到此错误:

No templates found matching: 'HttpTrigger'.
To list installed templates, run 'dotnet new --list'.
To search for the templates on NuGet.org, run 'dotnet new HttpTrigger --search'.
Run Code Online (Sandbox Code Playgroud)

因此,通过研究和阅读,我尝试遵循建议并最终使用此命令来安装模板:

dotnet new -i Microsoft.Azure.WebJobs.ItemTemplates
Run Code Online (Sandbox Code Playgroud)

事实上,它已经确认我已经HttpTrigger安装,如下图所示。但仍然存在与之前提到的相同的问题“未找到匹配的模板:'HttpTrigger'”。

我的问题是,在命令行中找不到模板的情况下出错的可能性有多大?

笔记:

  • 我也使用过具有管理员权限的 cmd 和 PowerShell。
  • 当我尝试在 Visual Studio 2019 中创建项目时,它可以毫无问题地创建 HttpTriggers。
  • 我在 Windows 10 环境上安装了 Visual Studio 2019 和 2022。
  • 这是我第一次使用并学习Azure Functions Core Tools。

在此输入图像描述

may*_*ʎɐɯ 13

注意:此解决方案适用于与No templates found matching: etc....

HttpTrigger对于那些在其他 Azure 功能特性方面面临类似问题的人。以下是问题的原因和解决方案以及我是如何解决的:

问题原因

安装不同的 SDK 版本会导致此问题。

如何验证

所以运行这个命令

dotnet --list-sdks

这将显示已安装的dotnet版本,在我的例子中,dotnet 5dotnet 6 preview都已安装。

解决方案

所以我做了什么,我用了什么

dotnet new globaljson

在我的项目/工作文件夹中,然后将版本更新为global.json5,并且它有效。

  • 我可以确认这个解决方案对我有用。我首先检查了我最新安装的 v5 sdk 版本是什么,然后创建了新的 globaljson,然后将版本从 v6 交换到最新安装的 v5。 (2认同)

Ven*_*dda 6

  • 我们在本地环境中进行了研究,当我使用 azure 函数核心工具 v3 和 dotnet sdk 版本 5 系列创建 http 触发函数时,它工作正常。
  • 如果您使用的是 dotnet sdk 版本“ 6.0.100-preview.7.21379.14 ”,该版本处于预览状态,通过函数核心工具创建函数将失败。
  • 如果使用.net sdk版本5和函数核心工具v3创建函数,您可以参考以下博客中共享的解决方案