【问题标题】:Azure DevOps Builds the Solution Differently Than Visual Studio LocallyAzure DevOps 在本地构建解决方案的方式与 Visual Studio 不同
【发布时间】:2021-10-19 13:41:00
【问题描述】:

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 中完全相同?

【问题讨论】:

    标签: azure-devops msbuild


    【解决方案1】:

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

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

    【讨论】:

    • 你为什么称他们为默认msbuildArgs?当我添加 VSBuild@1 任务时,默认情况下没有提供 MSBuild 参数,该字段为空。
    【解决方案2】:

    我不知道为什么,但是在没有任何参数的情况下运行 MSBuild 解决了这个问题。如果有人能对这种行为有所启发,那就太好了!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-31
      • 1970-01-01
      • 2019-08-03
      • 2010-12-15
      • 1970-01-01
      • 2013-12-24
      相关资源
      最近更新 更多