0

我只有 Azure DevOps 的问题!

当我右键单击并构建时,它在 Visual Studio 2019 中运行良好。如果我在本地使用 CMD 的 dotnet 构建,它也可以正常工作。

Nuget 包如下所示:

csproj

 <ItemGroup>
    <None Include="Utilities.Api.xml" Pack="true" PackagePath="File">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
    <None Include="build\Utilities.Api.props" Pack="true" PackagePath="build"></None>

  </ItemGroup>

  <ItemGroup>
    <None Update="Utilities.Api.xml">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>


    </None>
  </ItemGroup>

道具文件

<Project>

    <Target Name="CopyFilesToProject" BeforeTargets="Build">
        <ItemGroup>
            <SourceScripts Include="$(MSBuildThisFileDirectory)..\File\*.xml*"/> 
        </ItemGroup>
        <Copy
           SourceFiles="@(SourceScripts)"
           DestinationFolder="$(OutDir)"
        />
    </Target>


</Project>

当我在 Azure 上运行管道时,我通过“dotnet build”使用此版本的 MSBuild(Microsoft (R) Build Engine 版本(16.7.0+7fb82e5b2 for .NET))。

管道构建步骤:

  - task: DotNetCoreCLI@2
    displayName: Build
    timeoutInMinutes: 0
    inputs:
      command: build
      projects: src/**/*.csproj
      arguments: '--configuration $(BuildConfiguration) /p:reportanalyzer=true /p:TreatWarningsAsErros=$(warnAsErrors)'

我在构建后有一个发布步骤。

 - task: DotNetCoreCLI@2
    condition: and(succeeded(), not(variables.RunSonar))
    displayName: Publish and zip artifacts
    inputs:
      command: publish
      publishWebProjects: false
      arguments: '--configuration $(buildConfiguration) --no-build --output $(Build.ArtifactStagingDirectory)'
      packDirectory: '$(Build.ArtifactStagingDirectory)'
      zipAfterPublish: true
      projects: |
        src/**/*.Api.csproj
        !src/Test/**/*.csproj

这开始变得非常令人沮丧:)

4

2 回答 2

0

好的,我找到了解决方案。这是有道理的。

这种行为的原因是我只有 BeforeBuild 的目标。我也必须为发布添加一个目标。

我的 props 文件现在看起来像这样,它可以在本地和 Azure DevOps 上运行。

<Project>

  <Target Name="CopyFilesToProject" BeforeTargets="BeforeBuild">
    <ItemGroup>
      <SourceScripts Include="$(MSBuildThisFileDirectory)..\File\*.xml*"/>
    </ItemGroup>

    <Copy
         SourceFiles="@(SourceScripts)"
         DestinationFolder="$(OutDir)" />
  </Target>


  <Target Name="PublishCopyFiles" AfterTargets="Publish">
    <ItemGroup>
      <SourceScripts Include="$(MSBuildThisFileDirectory)..\File\*.xml*"/>
    </ItemGroup>
    <Copy
       SourceFiles="@(SourceScripts)"
       DestinationFolder="$(PublishDir)" />
  </Target>

</Project>
于 2020-10-01T13:27:43.310 回答
0

Azure Devops Build 步骤的日志:

2020-10-01T08:49:43.2627436Z [command]C:\ag1\_w\_tool\dotnet\dotnet.exe build C:\ag1\_w\16\s\src\Users.Api\Users.Api.csproj "-dl:CentralLogger,\"C:\ag1\_w\_tasks\DotNetCoreCLI_5541a522-603c-47ad-91fc-a4b1d163081b\2.175.0\dotnet-build-helpers\Microsoft.TeamFoundation.DistributedTask.MSBuild.Logger.dll\"*ForwardingLogger,\"C:\ag1\_w\_tasks\DotNetCoreCLI_5541a522-603c-47ad-91fc-a4b1d163081b\2.175.0\dotnet-build-helpers\Microsoft.TeamFoundation.DistributedTask.MSBuild.Logger.dll\"" --configuration Release /p:reportanalyzer=true /p:TreatWarningsAsErros=True
2020-10-01T08:49:43.6522165Z Microsoft (R) Build Engine version 16.7.0+7fb82e5b2 for .NET
2020-10-01T08:49:43.6522892Z Copyright (C) Microsoft Corporation. All rights reserved.
2020-10-01T08:49:43.6523107Z 
2020-10-01T08:49:44.1610081Z   Determining projects to restore...
2020-10-01T08:49:44.7025130Z   All projects are up-to-date for restore.
2020-10-01T08:49:45.5019137Z   Users.DomainServices.Public -> C:\ag1\_w\16\s\src\Users.DomainServices.Public\bin\Release\netcoreapp3.1\barfoo.Users.DomainServices.Public.dll
2020-10-01T08:49:45.6746889Z   Users.Infrastructure.Public -> C:\ag1\_w\16\s\src\Users.Infrastructure.Public\bin\Release\netcoreapp3.1\barfoo.Users.Infrastructure.Public.dll
2020-10-01T08:49:45.8373672Z   Users.DomainServices -> C:\ag1\_w\16\s\src\Users.DomainServices\bin\Release\netcoreapp3.1\barfoo.Users.DomainServices.dll
2020-10-01T08:49:46.1381732Z   Users.Infrastructure -> C:\ag1\_w\16\s\src\Users.Infrastructure\bin\Release\netcoreapp3.1\barfoo.Users.Infrastructure.dll
2020-10-01T08:49:46.3793169Z   Users.Api -> C:\ag1\_w\16\s\src\Users.Api\bin\Release\netcoreapp3.1\barfoo.Users.Api.dll
2020-10-01T08:49:46.3979376Z 
2020-10-01T08:49:46.3980068Z Build succeeded.
2020-10-01T08:49:46.3980389Z     0 Warning(s)
2020-10-01T08:49:46.3981116Z     0 Error(s)
于 2020-10-01T10:32:21.920 回答