Azure DevOps 构建解决方案的方式不同于 Visual Studio 在本地构建解决方案

Azure DevOps Builds the Solution Differently Than Visual Studio Locally

我们在 Azure DevOps Build Pipelines 生成与本地 Visual Studio 不同的文件时遇到问题。我们的 Visual Studio 2019 解决方案有 24 个基于 C# 的项目。 在通过 Azure DevOps Build Pipelines 构建解决方案时,在 Visual Studio 中本地构建解决方案时被放入 Bin 文件夹的一些关键 DLL(没有它们网站无法工作)。 packages.config.

中确实存在缺失的 DLL

这是 WinMerge 的屏幕截图,显示某些文件存在于 Azure DevOps Build Pipelines 中,而在本地 Visual Studio 中丢失,反之亦然。 [

Azure DevOps YAML 构建任务:

- task: VSBuild@1
  inputs:
    solution: 'Solution.sln'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'
    msbuildArgs: '/p:OutputPath="$(build.binariesDirectory)\Output\bin"'

我们如何调试此类行为并使我们的构建在本地和 Azure DevOps 中完全相同?

我在我的 .Net Core Web 应用程序中使用默认 msbuildArgs 进行了测试,一切正常。

msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactStagingDirectory)"'

我不知道为什么,但是 运行 没有任何参数的 MSBuild 解决了这个问题。如果有人能阐明这种行为,那就太好了!