【问题标题】:Azure Pipeline 1 solution with multiple projects and separate versions具有多个项目和单独版本的 Azure Pipeline 1 解决方案
【发布时间】:2023-01-18 23:47:08
【问题描述】:

我设置了一个 azure 管道来构建 .net 框架类库。当前设置是解决方案中的 1 个解决方案和 1 个项目,一切正常。我使用 Assembly Info Reader 扩展名来读取用于版本控制的 AssemblyInfo.cs。这工作正常,完全符合预期。

我想要实现的是将第二个项目添加到解决方案并使用相同的管道构建它,它是第二个项目中 AssemblyInfo.cs 文件的自己的版本控制。从某种意义上说,它可以很好地构建项目,但似乎我不能使用单独的AssemblyInfo.cs文件来为每个文件提供自己的版本。例如

我期待Project1.0.1.0-ci-20230117-153658 & Project2.2.0.0-ci-20230117-153658 但是我得到Project1.2.0.0-ci-20230117-153658Project2.2.0.0-ci-20230117-153658

所以他们都采用相同的版本号而不是单独的版本号。

我的管道中的步骤如下。

steps:
- task: NuGetCommand@2
  displayName: 'NuGet restore'

- task: MSBuild@1
  displayName: 'Build solution **/*.sln'

- task: kherzog.AssemblyInfoReader.assembly-info-reader-build-task.AssembyInfoReader@3
  displayName: 'Generate variables **\AssemblyInfo.cs '

- task: NuGetCommand@2
  displayName: 'NuGet pack'
  inputs:
    command: pack
    versioningScheme: byPrereleaseNumber
    majorVersion: '$(AssemblyInfo.AssemblyVersion.Major)'
    minorVersion: '$(AssemblyInfo.AssemblyVersion.Minor)'
    patchVersion: '$(AssemblyInfo.AssemblyVersion.Build)'

- task: PublishBuildArtifacts@1
  displayName: 'Publish Artifact: drop'

【问题讨论】:

    标签: nuget azure-pipelines assemblyinfo


    【解决方案1】:

    您打包的是单个 NuGet,那么如果您打包的是单个 NuGet,为什么还需要从程序集中提取两个版本?

    AssemblyInfo Reader 有一个属性可以选择 AssemblyInfo.cs 所在的路径。尝试将 serchPattern 添加到您的 AssemblyInfo Reader 任务中,这样您就可以从您需要的项目中提取信息:

    - task: AssembyInfoReader@3
      displayName: 'Get Assembly Info'
      inputs:
        searchPattern: '$(projectFolder)/Properties/AssemblyInfo.cs'
    

    当您想从两个不同的项目中提取两个版本时,我认为您应该使用不同的作业,一个用于任何项目,并在每个作业中从适当的程序集中提取这些属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-29
      • 1970-01-01
      • 1970-01-01
      • 2015-07-30
      • 1970-01-01
      • 1970-01-01
      • 2020-01-02
      • 1970-01-01
      相关资源
      最近更新 更多