gpt4 book ai didi

azure-devops - 在 Azure Devops 中构建管道时,管理从 beta 到 VS2017 中针对 .net core2.1 发布的 nuget 版本

转载 作者:行者123 更新时间:2023-12-04 04:36:08 24 4
gpt4 key购买 nike

我需要为 .net core 2.1 创建 nuget 包作为 Azure Devops 构建和发布过程的一部分我想做什么

1) 在构建部分构建项目,然后将编译后的代码添加到工件中

2) 在 Release 定义中将有 2 个部署,一个用于 Beta 版本,其中版本类似于 1.2.3-Beat.2 并推送到 azure artifact nuget,另一个部署用于发布,其中版本类似于 1.2.3.2 和推送到 azure 神器 nuget。

目前我只有一个构建定义,它将构建(在构建过程中创建 nuget 包)并推送到 azure 工件 nuget。

enter image description here

我想创建的管道

enter image description here

最佳答案

使用 dotnet pack任务 --no-build选项,并在预发布阶段设置 VersionSuffix 值。

注意:我目前的团队使用一组 Powershell 脚本将内部版本号数据附加到 .csproj(或 AssemblyInfo.cs 的 netFramework)中找到的 Major.Minor 数据,但这不会改变您问题的答案.一旦弄清楚 Major.Minor.Patch[.Build] 数据将是什么,就可以在 dotnet pack 中使用 VersionSuffix 属性。任务 --no-build在包裹通过您的管道时传达包裹的质量。

enter image description here

给定一个 .csproj看起来像这样的文件:

<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
<PropertyGroup>
<PackageVersion>1.0.0.1</PackageVersion>
<AssemblyVersion>1.0.1812.201</AssemblyVersion>
<FileVersion>1.0.1812.201</FileVersion>
</PropertyGroup>
<ItemGroup>
<Content Include="Assemblies\*">
<Pack>true</Pack>
<PackagePath>lib\$(TargetFramework)</PackagePath>
</Content>
</ItemGroup>
</Project>

同样,如果我们忽略我们使用的版本控制步骤,上面管道图像中的 dotnet pack 任务将生成版本为 1.0.0.1-Beta 的包。 .

然后在稳定发布阶段,不要设置后缀值,让包像往常一样从 .csproj 文件中获取其版本(例如 1.0.0.1)。


样本中的元素和值.csproj上面的文件可以直接编辑为 .csproj或者它们可以使用 Properties >> Package 选项卡进行设置。

如果值未在属性菜单中更改或明确添加,则元素和值不会出现在 .csproj 中并由 dotnet build|test|pack 命令假定。

enter image description here


如果您不熟悉这些属性和值的组合方式,那么找到这些属性和值的正确组合可能会让人望而生畏。我找到了 this article在尝试破译版本属性时很有用。

还有,你应该明白1.0.1-b2 < 1.0.1 ,因此您的预发布版本可能是 1.2.3.2-beta1你的稳定版本是 1.2.3.2 .


go to nuget doc

关于azure-devops - 在 Azure Devops 中构建管道时,管理从 beta 到 VS2017 中针对 .net core2.1 发布的 nuget 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54803348/

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