GitHub Actions 工作流 - 发布的 Nuget 包总是被标记为预发布

5
我将从GitHub Actions Workflow(下面列出的.yml文件)发布Nuget包到GitHub Packages。

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 Package Manager中也存在同样的行为。只有当我勾选“包括预发行版”时,软件包才可见。


这里的讨论似乎表明这是一个客户端问题。您尝试过从NuGet包管理器选项中清除缓存吗? - peterevans
我刚刚注意到你正在通过 nuget.pkg.github.com URL 进行测试,这表明它是在服务器端进行的。 - peterevans
1个回答

1

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

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

看起来你需要 PackageId、作者和公司信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接