Я открыл вопрос здесь в начале: https://github.com/Azure/azure-functions-durable-extension/issues/692
На самом деле, это не ошибка в долговременной функции, а скорее проблема msbuild.
Глядя на сборку на работающей машине, у меня есть такие журналы:
10:25:32.475 1:7>Target "_GenerateFunctionsExtensionsMetadataPostBuild: (TargetId:231)" in file "C:\Users\MyUser\.nuget\packages\microsoft.azure.webjobs.script.extensionsmetadatagenerator\1.0.2\build\Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator.targets" from project "C:\MyProject\MyFunctions\E1.Functions.csproj" (entry point):
Using "GenerateFunctionsExtensionsMetadata" task from assembly "C:\Users\MyUser\.nuget\packages\microsoft.azure.webjobs.script.extensionsmetadatagenerator\1.0.2\build\..\tools\netstandard2.0\Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator.dll".
Task "GenerateFunctionsExtensionsMetadata" (TaskId:137)
Task Parameter:SourcePath=C:\MyProject\MyFunctions\bin\Release\netcoreapp2.2\bin (TaskId:137)
Task Parameter:OutputPath=C:\MyProject\MyFunctions\bin\Release\netcoreapp2.2\bin (TaskId:137)
Done executing task "GenerateFunctionsExtensionsMetadata". (TaskId:137)
Task "Move" skipped, due to false condition; ($(_IsFunctionsSdkBuild) == 'true' AND Exists('$(TargetDir)extensions.json')) was evaluated as (true == 'true' AND Exists('C:\MyProject\MyFunctions\bin\Release\netcoreapp2.2\extensions.json')).
В самом начале сборки на работающей машине у меня в логах есть такая строка:
Property reassignment: $(_FunctionsExtensionsDir)="C:\MyProject\MyFunctions\bin\Release\netcoreapp2.2\bin" (previous value: "C:\MyProject\MyFunctions\bin\Release\netcoreapp2.2")
at C:\Users\MyUser.nuget\packages\microsoft.azure.webjobs.script.extensionsmetadatagenerator\1.0.2\build\Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator.targets (11,5)
Есть идеи, как это решить?
EDIT:
Вот csproj:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<AzureFunctionsVersion>v2</AzureFunctionsVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.DurableTask" Version="1.8.0" />
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="1.0.26" />
</ItemGroup>
<ItemGroup>
<None Update="host.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="local.settings.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<CopyToPublishDirectory>Never</CopyToPublishDirectory>
</None>
</ItemGroup>
</Project>
и Function1.cs
using System;
using Microsoft.Azure.WebJobs;
using Microsoft.Extensions.Logging;
namespace FunctionApp1
{
public static class Function1
{
[FunctionName("Function1")]
public static void Run([TimerTrigger("0 */5 * * * *")]TimerInfo myTimer,
[OrchestrationClient] DurableOrchestrationClient starter,
ILogger log)
{
log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
}
}
}
Я удалил все предыдущие версии Visual Studio, сейчас есть только VS 2019.