我试图通过Visual Studio和CLI在V2运行时中创建一个Azure函数。但是当我运行它时,我看到以下错误:
[9/30/2018 3:11:06 PM]未找到作业功能。尝试公开您的工作类别和方法。如果使用绑定扩展(例如ServiceBus,Timer等),请确保已在启动代码(例如config.UseServiceBus(),config.UseTimers()等)中调用了扩展的注册方法。 )。
以下是azure函数的运行时间和核心工具版本
Azure Functions核心工具(2.0.3) 函数运行时版本:2.0.12115.0
我还安装了服务总线扩展
我也尝试过通过CLI安装扩展。以下是project.csproj:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<AzureFunctionsVersion>V2</AzureFunctionsVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.ServiceBus" Version="3.0.0" />
<PackageReference Include="Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator" Version="1.0.1" />
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="1.0.22" />
</ItemGroup>
<ItemGroup>
<None Update="host.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="local.settings.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<CopyToPublishDirectory>Never</CopyToPublishDirectory>
</None>
</ItemGroup>
</Project>
注意-这是开箱即用的模板,尚未进行任何更改。
答案 0 :(得分:2)
<PackageReference Include="Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator" Version="1.0.1" />
请删除此软件包参考并清理项目,该项目已导入Microsoft.NET.Sdk.Functions
中以进行VS开发。再次导入可能会导致构建错误,如您所见。
更新
由于您看不到已建资产中的function.json
,因此您担心Microsoft.NET.Sdk.Functions
出问题了,这无法将.cs文件中的触发器属性构建为{{1} }。我的建议是
function.json
。 %userprofile%\.nuget\packages\microsoft.net.sdk.functions
删除功能CLI。%localappdata%\AzureFunctionsTools
使用的模板引擎。%userprofile%\.templateengine
。等待,直到其更改为Making sure all templates are up to date
。
Updates are ready
。为了防万一,请在VS中使用服务总线队列触发器模板。代码如下,.csproj与没有Refresh
的代码相同。
Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator
还有 using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;
using Microsoft.Extensions.Logging;
namespace FunctionApp1
{
public static class Function1
{
[FunctionName("Function1")]
public static void Run([ServiceBusTrigger("myqueue", Connection = "MyConnection")]string myQueueItem, ILogger log)
{
log.LogInformation($"C# ServiceBus queue trigger function processed message: {myQueueItem}");
}
}
}
中的文件夹结构。