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

标签 azure-devops nuget nuget-package

我需要为 .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/

相关文章:

c# - "System.Tuple defined multiple times issue"怎么解决?

xml - nuget 'packages' 元素未声明警告

visual-studio - Nuget - 包管理器控制台的编写工具(自定义 cmdlet)

Azure Function 在部署后偶尔仍运行旧代码

azure - 在 Visual Studio 中本地使用 Azure 发布管道变量(调试时)

visual-studio - 私有(private) NuGet 提要 - 记住密码

c# - 如何连接MySQL数据库?

c# - 在一个包含两个项目的解决方案文件中安装不同版本的 nuget 包

git - 如何排除对管道 yaml 文件的更改以触发构建 i azure devops?

powershell - 如何在 Azure DevOps 上的 Windows 管道中为 Go 生成 syso 文件