【问题标题】:dotnet publish doesn't create a bin folder for Azure Functionsdotnet publish 不会为 Azure Functions 创建 bin 文件夹
【发布时间】:2020-05-13 18:21:53
【问题描述】:

我目前正在使用以下 Directory.Build.targets 在 azure 函数上运行 dotnet 发布

<Project>
  <PropertyGroup>
    <_IsFunctionsSdkBuild Condition="$(_FunctionsTaskFramework) != ''">true</_IsFunctionsSdkBuild>
    <_FunctionsExtensionsDir>$(TargetDir)</_FunctionsExtensionsDir>
    <_FunctionsExtensionsDir Condition="$(_IsFunctionsSdkBuild) == 'true'">$(_FunctionsExtensionsDir)bin</_FunctionsExtensionsDir>
  </PropertyGroup>

  <Target Name="CopyExtensionsJson" AfterTargets="_GenerateFunctionsAndCopyContentFiles">
    <Message Importance="High" Text="Overwritting extensions.json file with one from build." />

    <Copy Condition="$(_IsFunctionsSdkBuild) == 'true' AND Exists('$(_FunctionsExtensionsDir)\extensions.json')"
          SourceFiles="$(_FunctionsExtensionsDir)\extensions.json"
          DestinationFiles="$(PublishDir)bin\extensions.json"
          OverwriteReadOnlyFiles="true"
          ContinueOnError="true"/>
  </Target>
</Project>

但是它目前正在失败,因为它找不到路径。

bin\Release\netstandard20\publish\bin

这在本地和 Azure Dev Ops 构建管道中都发生

但是,如果我手动创建此文件夹位置,一切正常。我有其他项目完全相同,没有问题,并且它们与导致问题的一个项目之间没有差异。

功能设置为v2

 <PropertyGroup>
    <TargetFramework>netstandard20</TargetFramework>
    <AzureFunctionsVersion>v2</AzureFunctionsVersion>
  </PropertyGroup>

我有什么遗漏的,为什么这个文件夹没有被创建。

【问题讨论】:

    标签: .net visual-studio azure azure-devops azure-functions


    【解决方案1】:

    我找到了解决方法。我加了

      <Target Name="MakeMyDir" AfterTargets="Build">
        <MakeDir Directories="$(PublishDir)bin" />
      </Target>
    

    到确保目录在复制之前创建的 Build.Targets

    【讨论】:

    • 如果这可以解决您的问题,无论是变通还是解决方案,您都可以将其标记为答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-29
    • 2022-07-06
    相关资源
    最近更新 更多