dotnet 发布有时会因“元数据生成失败”而失败

Pav*_*uva 6 azure .net-core azure-functions

我们有一个 Azure 函数应用。运行时版本是 2。有时这个命令会在我们的构建服务器上失败(Jenkins 在 Windows Server 上运行):

dotnet publish C:\temp\OurFunctionApp.csproj -c Release -o C:\temp\output
Run Code Online (Sandbox Code Playgroud)

错误:

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>
Run Code Online (Sandbox Code Playgroud)

小智 1

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

其目标是为每个帐户拥有自己的 Nuget 文件夹。(同一文件夹中不再有问题) C:\Users\Agent1.nuget C:\Users\Agent2.nuget ...

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