сборка dotnet не генерирует файл extensions.json для функции azure - PullRequest
0 голосов
/ 16 апреля 2019

Я открыл вопрос здесь в начале: 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.

1 Ответ

0 голосов
/ 17 апреля 2019

По сути, иногда вам нужно включить дополнительную зависимость, чтобы msbuild / visual studio запустила шаги после сборки и сгенерировал файл расширений.

Добавьте Microsoft.Azure.Webjobs.Script.ExtensionsMetadataGenerator в качестве зависимости отпроект ваших функций, и он должен (пока) правильно создавать каталог публикации.

Пожалуйста, проверьте похожую проблему:

https://github.com/Azure/Azure-Functions/issues/928#issuecomment-420679962

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...