GitHub 操作工作流 - 已发布的 Nuget 包始终标记为预发布

Ope*_*or9 5 c# continuous-integration github nuget github-actions

我正在将 Nuget 包从 GitHub 操作工作流(下面列出的 .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>
Run Code Online (Sandbox Code Playgroud)

GitHub 操作工作流 .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
Run Code Online (Sandbox Code Playgroud)

问题:

除了始终考虑包外,工作流中的所有内容都可以正常执行prerelease

测试方法一:

当我访问这个URL我的包只列出了如果我的变化prerelease=falseprerelease=true

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

测试方法二:

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

小智 1

<PropertyGroup>您必须在csproj 的标记内指定一些最少的属性。

<PackageId>AppLogger</PackageId>
<Version>1.0.0</Version>
<Authors>your_name</Authors>
<Company>your_company</Company>
Run Code Online (Sandbox Code Playgroud)

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