dotnet发布失败,有时“元数据生成失败”

时间:2019-02-13 00:11:40

标签: azure .net-core azure-functions

我们有一个Azure功能应用程序。运行时版本为2。有时,此命令在我们的构建服务器(Windows Server上运行的詹金斯)上失败:

dotnet publish C:\temp\OurFunctionApp.csproj -c Release -o C:\temp\output

错误:

  

C:\ Users \ user1.nuget \ packages \ microsoft.azure.webjobs.script.extensionsmetadatagenerator \ 1.0.1 \ build \ Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator.targets(20,5):错误:元数据一代失败了。 [C:\ temp \ OurFunctionApp.csproj]

当我从命令行运行此命令时,它总是可以正常工作。

我们的构建服务器上未安装Visual Studio。

如何诊断和修复此错误?

.csproj文件:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
    <AzureFunctionsVersion>v2</AzureFunctionsVersion>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.ApplicationInsights" Version="2.8.1" />
    <PackageReference Include="Microsoft.Azure.WebJobs.Extensions.EventHubs" Version="3.0.1" />
    <PackageReference Include="Microsoft.NET.Sdk.Functions" Version="1.0.24" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\Project1\Project1.csproj" />
    <ProjectReference Include="..\Project2\Project2.csproj" />
    <ProjectReference Include="..\Project3\Project3.csproj" />
    <ProjectReference Include="..\Project4\Project4.csproj" />
  </ItemGroup>
  <ItemGroup>
    <None Update="ourlist.txt">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </None>
    <None Update="host.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
    <None Update="local.settings.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
      <CopyToPublishDirectory>Never</CopyToPublishDirectory>
    </None>
  </ItemGroup>
</Project>

5 个答案:

答案 0 :(得分:2)

我在Net Framework 4.7中遇到相同的问题。

要解决该问题,您应该更新Microsoft.NET.Sdk.Functions nuget程序包。

答案 1 :(得分:1)

将以下内容添加到 csproj 文件中:

<AzureFunctionsVersion>v2</AzureFunctionsVersion>

是什么为我修复了它。

答案 2 :(得分:0)

为了避免相同的问题,我通过DevOps Agent创建了一个Windows帐户(Admin)。

目标是让每个帐户都有自己的nuget文件夹。 (不再在同一文件夹上//发出问题) C:\ Users \ Agent1.nuget C:\ Users \ Agent2.nuget ...

由于我已使用新的Windows帐户更改了所有Windows服务,因此我的构建中不再有错误;)(需要重新启动Agent Windows服务)

答案 3 :(得分:0)

一段时间后,我刚刚删除并重新创建了该应用程序。对我有用

答案 4 :(得分:0)

我的问题是我将Microsoft.NET.Sdk.Functions更新到版本3+,而我仍然拥有版本2的功能。我安装并定位到v1.0.37,就解决了问题