Почему сборка ядра dotnet оптимизирована, если для параметра конфигурации установлено значение debug - PullRequest
0 голосов
/ 18 октября 2019

У меня есть приложение долгосрочных функций ядра dotnet, которое создается с помощью конвейера сборки DevOps Azure. В файле yaml для этого в качестве параметра конфигурации указывается «Debug», что можно увидеть в извлечении из журнала сборки, показанном ниже:

[command]"C:\Program Files\dotnet\dotnet.exe" build d:\a\1\s\Interfaces.Avaloq.Presentation.AzureFunctions\Interfaces.Avaloq.Presentation.AzureFunctions.csproj --configuration Debug

Однако сборка, которая собирается, является «Оптимизированной», что предотвращаетя от присоединения отладчика. Я знаю это, потому что я скачал zip, созданный сборкой, а затем добавил ссылку на сборку, следуя инструкциям здесь: Отличный ответ SO

Создаемый файл csproj выглядит следующим образом:

<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
    <AzureFunctionsVersion>v2</AzureFunctionsVersion>
    <LangVersion>8.0</LangVersion>
    <NullableContextOptions>enable</NullableContextOptions>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Base.Core.SharedKernel" Version="1.0.0.23885" />
    <PackageReference Include="FluentValidation.AspNetCore" Version="8.5.0" />
    <PackageReference Include="MediatR.Extensions.Microsoft.DependencyInjection" Version="7.0.0" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.2.0" />
    <PackageReference Include="Microsoft.Azure.WebJobs.Extensions.DurableTask" Version="1.8.3" />
    <PackageReference Include="Microsoft.Azure.WebJobs.Extensions.ServiceBus" Version="3.1.1" />
    <PackageReference Include="Microsoft.Azure.WebJobs.Extensions.Storage" Version="3.0.8" />
    <PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="3.0.0" />
    <PackageReference Include="Microsoft.Extensions.Http" Version="3.0.0" />
    <PackageReference Include="Microsoft.NET.Sdk.Functions" Version="1.0.29" />
    <PackageReference Include="Newtonsoft.Json" Version="12.0.2" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\Interfaces.Avaloq.Application\Interfaces.Avaloq.Application.csproj" />
    <ProjectReference Include="..\Interfaces.Avaloq.Common\Interfaces.Avaloq.Common.csproj" />
    <ProjectReference Include="..\Interfaces.Avaloq.Infrastructure\Interfaces.Avaloq.Infrastructure.csproj" />
    <ProjectReference Include="..\Interfaces.Avaloq.Persistence\Interfaces.Avaloq.Persistence.csproj" />
  </ItemGroup>
  <ItemGroup>
    <None Update="host.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
    <None Update="local.settings.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
      <CopyToPublishDirectory>Never</CopyToPublishDirectory>
    </None>
  </ItemGroup>
</Project>

yaml для сборки:

trigger:
- develop
stages:
- stage: Build
  jobs:
  - job: Build

    pool:
      name: Hosted Windows 2019 with VS2019
      demands:
      - msbuild
      - visualstudio

    variables:
      solution: '**/*.sln'
      projects: '**/Interfaces.Avaloq.Presentation.AzureFunctions.csproj'
      testProjects: '**/*[Tt]esting*/*.csproj'
      buildPlatform: 'Any CPU'
      buildConfiguration: 'Debug'

    steps:
    - script: |
    - task: DotNetCoreCLI@2
      displayName: Restore
      inputs:
        command: restore
        projects: '$(projects)'
        feedsToUse: config
        nugetConfigPath: nuget.config

    - task: DotNetCoreCLI@2
      displayName: Build
      inputs:
        projects: '$(projects)'
        arguments: '--configuration $(BuildConfiguration)'

    - task: AzurePowerShell@4
      inputs:
        azureSubscription: 'Design Subscription (e73cbf58-ae70-454f-89dc-692d3882dbf4)'
        ScriptType: 'InlineScript'
        Inline: |
          Set-Location $env:AGENT_WORKFOLDER
          Get-ChildItem -Recurse
        azurePowerShellVersion: 'LatestVersion'

    - task: DotNetCoreCLI@2
      displayName: Publish
      inputs:
        command: publish
        arguments: '--configuration Release --output $(build.artifactstagingdirectory)'
        projects: '$(projects)'
        publishWebProjects: false
        zipAfterPublish: true

    - task: PublishBuildArtifacts@1
      displayName: 'Publish Artifact'
      inputs:
        PathtoPublish: '$(build.artifactstagingdirectory)'
      condition: succeededOrFailed()

    - task: PublishBuildArtifacts@1
      displayName: 'Publish Artifact: ArmTemplate'
      inputs:
        PathtoPublish: Interfaces.Avaloq.Deployment
        ArtifactName: RGDeploy

Есть идеи, почему сборка собирается как оптимизированная?

1 Ответ

1 голос
/ 18 октября 2019

Вы используете --configuration Release для шага публикации

...