gpt4 book ai didi

C#/.NET - 如何自动生成和增加包版本,尤其是通过 CI?

转载 作者:可可西里 更新时间:2023-11-01 09:14:02 24 4
gpt4 key购买 nike

我有一个构建为 NuGet 库包的 Visual Studio 项目。但是每次发布包时,我都必须手动更改版本号。这是一项容易出错的工作。我想自动生成和增加包版本号。


我找到了 GitVersion tool解决这个问题。并且我还找到了一些语义版本控制博客来解释持续交付的包版本。


但不幸的是,GitVersion包对我来说不能正常工作。

  • 它给我一个 AssemblyVersionAttribute 重复的错误。
  • 如果我添加 <GenerateAssemblyInfo>false</GenerateAssemblyInfo>进入 csproj 文件,它什么都不做,包版本将为 0.0.0.0。

可能是因为我使用的是新的 csproj 格式。参见 here查看 csproj 文件,文件如下所示:

<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net45;net47;netstandard2.0</TargetFrameworks>
</PropertyGroup>
</Project>

如有任何回复,我们将不胜感激。


更新:

我发现有问题提一下我的问题:Gitversion Task for VS2017-style csproj · Issue #1349 · GitTools/GitVersion .我正在尝试新的解决方案。

最佳答案

不确定 Jenkins,但它应该能够自行生成增量数字或时间戳,可以通过构建管道上的环境变量访问。

我认为最灵活的方法是向您的 csproj 添加一个带有占位符的 PackageVersion 标记,然后您的构建管道可以更改它:

  <PropertyGroup>
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
<PackageVersion>$(PackageVersion)</PackageVersion>
</PropertyGroup>

因此,在您的构建管道中,您只需传递版本,例如:

dotnet build -p:PackageVersion=$(BUILD_TIMESTAMP)

关于C#/.NET - 如何自动生成和增加包版本,尤其是通过 CI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49765756/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com