GitHub Actions工作流程-已发布的Nuget软件包始终标记为预发布

时间:2019-12-08 22:13:08

标签: c# github continuous-integration nuget github-actions

我正在将一个Nuget包从GitHub Actions工作流(下面列出的.yml文件)发布到GitHub包中。

C#项目文件PropertyGroup:

如下所示,项目的.csproj文件不包含VersionSuffix的值:

  <PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
    <LangVersion>latest</LangVersion>
    <VersionPrefix>1.4.0</VersionPrefix>
    <Version>1.4.0</Version>
    <PackageVersion>1.4.0</PackageVersion>
    <VersionSuffix></VersionSuffix>
    <InformationalVersion>This is a package.</InformationalVersion>
  </PropertyGroup>

GitHub Actions工作流程.yml文件:

name: Build, Pack, Publish

on: [push]

jobs:
  build:
    runs-on: windows-latest
    steps:

    - uses: actions/checkout@v1

    - name: Setup .NET Core
      uses: actions/setup-dotnet@v1
      with:
        dotnet-version: 2.2.109

    - name: dotnet build
      run: dotnet build --configuration Release

    - name: Install NuGet client
      uses: warrenbuckley/Setup-Nuget@v1

    - name: Add private GitHub registry to NuGet
      run: nuget sources add -name "GPR" -Source https://nuget.pkg.github.com/Operator9/index.json -Username Operator9 -Password ${{ secrets.GITHUB_TOKEN }}

    - name: Pack
      run: dotnet pack -c Release -o out

    - name: Push generated package to GitHub registry
      run: nuget push .\out\*.nupkg -Source "GPR" -SkipDuplicate

问题:

除了始终将包视为prerelease以外,工作流中的所有内容都可以正常运行。

测试方法1:

当我访问此URL时,仅当我将prerelease=false更改为prerelease=true时才会列出我的包裹

https://nuget.pkg.github.com/Operator9/query?q=MyPackageName&prerelease=false

测试方法2:

Visual Studio Nuget程序包管理器中存在相同的行为。仅当我选中“包括预发行版”时,该软件包才可见。

1 个答案:

答案 0 :(得分:1)

必须在csproj的<PropertyGroup>标签内指定一些最小属性。

<PackageId>AppLogger</PackageId>
<Version>1.0.0</Version>
<Authors>your_name</Authors>
<Company>your_company</Company>

看起来您需要PackageId,作者和公司。