azure 未找到匹配的模板:'HttpTrigger'

sshcrbum  于 2023-04-07  发布在  其他
关注(0)|答案(3)|浏览(168)

我已经安装了Microsoft的Azure Functions Core Tools V.3.x。
我试图遵循一条学习的道路。到目前为止,它在使用节点时工作得很好。无论如何,现在我正在尝试使用.net,所以我所做的如下:

func init

选择dotnet,它就能在我的工作区中正常生成文件。

func new

并选择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'.

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

dotnet new -i Microsoft.Azure.WebJobs.ItemTemplates

事实上,它已经证实,我已经安装了HttpTrigger,正如你可以在下面的图片中看到的。但仍然有相同的问题,如前所述“没有找到匹配的模板:'HttpTrigger'。”
我的问题是,在找不到模板的命令行中出错的可能性有多大?
注意事项:

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

hwazgwia

hwazgwia1#

注:此解决方案适用于所有其他功能特性,得到相同的问题与No templates found matching: etc...
对于那些在使用HttpTrigger或其他azure函数功能时遇到类似问题的人。以下是问题的原因和解决方案以及我如何解决它:

问题原因

安装不同的SDK版本导致了这个问题。

如何验证

所以运行这个命令
dotnet --list-sdks
这将显示已安装的dotnet版本,在我的示例中,安装了dotnet 5dotnet 6 preview

解决方案

所以我所做的我用的
dotnet new globaljson
在我的项目/工作文件夹中,然后将global.json中的版本更新为5,它工作了😊。

lymnna71

lymnna712#

  • 我们已经研究了我们的本地环境,而它是工作正常时,我创建的http触发器功能使用azure功能核心工具v3和dotnet sdk版本5家庭。
  • 如果您使用的是dotnet sdk版本“6.0.100-preview.7.21379.14”,该版本处于预览状态,通过函数核心工具创建函数将失败。
  • 如果使用.net sdk版本5和函数核心工具v3创建函数,您可以参考以下below blog中共享的解决方案。
kiz8lqtg

kiz8lqtg3#

Microsoft文档提醒您不应使用两个不同的包管理器来安装Azure Functions Core Tools。这可能是问题所在(至少是我的问题),或者您以某种方式混淆了Azure Functions Core Tools或有几个版本。在我的情况下:我检查了使用npm安装的全局包:

npm list -g --depth 0

确认我有一个Azure Functions Core Tools过时的全局包v3。
删除了它:

npm uninstall -g azure-functions-core-tools

使用MSI安装程序重新安装了它,您可以在此处找到
在此之后一切都很好。因为它的核心工具v4,我现在可以使用它的identnet6,所有模板包括在内。

相关问题