如何禁止在发布管道中使用 Nuget 包的预发布版本

Ghe*_*nco 5 c# nuget azure-devops azure-pipelines

如果预发布版本中有块包,是否可能导致发布“失败”?

也许 Azure DevOps 中已经有一个任务,或者也许有一种方法可以使用 Powershell 来完成此任务?

Sha*_*zyk 3

您可以.csproj使用PowerShell读取该文件并检查预发布是否存在,如果存在则报错:

[xml]$csproj = Get-Content path/to/csproj/file # e.g. $(Agent.ReleaseDirectory)/myproject/myproject.csproj
$versions = $csproj.Projects.ItemGroup.PackageReference.Version
$versions.ForEach({

   # Pre-releases are with '-' symbol, e.g. 1.0.0-beta
   if($_ -match "(?<number>\d-)")
   {
       Write-Error "Pre-release exist: $_"
   }

})
Run Code Online (Sandbox Code Playgroud)