【问题标题】:/p:AssemblyVersion doesn't override AssemblyInfo.cs parameters/p:AssemblyVersion 不会覆盖 AssemblyInfo.cs 参数
【发布时间】:2020-03-02 11:33:54
【问题描述】:

我希望我的 Azure 管道覆盖位于 AssemblyInfo.cs 中的 [assembly: AssemblyVersion("1.1.6.0")][assembly: AssemblyFileVersion("1.1.6.0")] 字段。在构建任务中我使用这个配置:

- task: MSBuild@1
    inputs:
      solution: '*.csproj'
      msbuildArguments:'/p:OutputPath=$(Build.ArtifactStagingDirectory) /p:AssemblyVersion="$(Build.BuildNumber)"'

但程序集的版本保持不变,我希望它们与当前的内部版本号相同。为什么值不更新?

【问题讨论】:

  • /p 允许您覆盖 MSBuild 属性,而不是代码。
  • @HansPassant 谢谢。那么,我该怎么做呢?
  • 您只展示了如何不这样做,我们无法说明为什么需要这样做以及数字来自哪里。谷歌“c# set assembly version at build time”取得成功。

标签: msbuild azure-pipelines .net-assembly msbuild-task


【解决方案1】:

要更新 AssemblyVersion,您可以在管道中使用 Assembly Info 任务。

你需要先安装这个任务,去右上角的Marketplace,搜索Assembly Info。

此任务包含两个子任务。 Assembly-Info-NetFramework 任务用于 NetFramwork 项目。和 Assembly-Info-NetCore@2 任务用于 NetCore 项目。

例如,在构建任务之前将此任务添加到您的管道中。

 - task: Assembly-Info-NetFramework@2
      inputs:
        FileNames: "**/AssemblyInfo.cs"
        VersionNumber: $(Build.BuildNumber)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-18
    • 2018-04-05
    • 1970-01-01
    • 2010-12-09
    • 2019-04-20
    • 1970-01-01
    • 2020-03-18
    • 1970-01-01
    相关资源
    最近更新 更多