• Github自动打包并推送Nuget版本


    如何将自己的类库,自动打包并自动发布到Nuget?

    1. 项目csproject属性修改

    新建一个项目GitToNugetPackageTest

    不用添加任何类,我们修改csproject属性。

    替换为以下模板内容后,并修改以下节点值:

    • TargetFrameworks 依赖的框架版本,比如net452;netcoreapp3.1,多个版本以分号隔开Version
    • Version 版本号,每次需要升级Nuget版本时,可以修改这个提交一下就行了。
    • RespositoryUrl、PackageProjectUrl替换成自己的项目地址和仓库地址
     1 <Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
     2   <PropertyGroup>
     3     <TargetFrameworks>net45</TargetFrameworks>
     4     <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
     5     <Version>1.0.0</Version>
     6     <Authors>Kybs0</Authors>
     7     <UseWpf>True</UseWpf>
     8     <UseWindowsForms>true</UseWindowsForms>
     9     <RepositoryUrl>https://github.com/Kybs0/GitToNugetPackageTest.git</RepositoryUrl>
    10     <PackageProjectUrl>https://github.com/Kybs0/GitToNugetPackageTest</PackageProjectUrl>
    11     <PackageIconUrl></PackageIconUrl>
    12     <RepositoryType>git</RepositoryType>
    13     <Description>测试:Git自动打包,并推到Nuget源。</Description>
    14     <LangVersion>latest</LangVersion>
    15   </PropertyGroup>
    16   <ItemGroup>
    17     <None Remove="GitToNugetPackageTest.csproj.DotSettings" />
    18   </ItemGroup>
    19   <ItemGroup>
    20     <PackageReference Include="System.ValueTuple" Version="4.5.0" />
    21   </ItemGroup>
    22 </Project>

    2. 生成并上传Nuget包

    在第1步的基础上,鼠标右击项目,点击打包

    在Debug下可以查看到本地生成的nuget源包

    将此源包上传至https://www.nuget.org/packages/manage/upload

    上传成功后,在头像弹框内点击API KEYS,然后生成一个新的API KEY(关联上GitToNugetPackageTest

    生成成功后,在API Keys列表找到新的Key,点击复制(复制以后保存在你的记事本里,第4步需要)。

    注:注意保留API KEY!刷新页面就没有了,除非点击重新生成,但是重新生成的Key就是另一个Key值了。

    所以为了减少麻烦,建议一个项目用一个API KEY。

    3.新建Action,添加打包流程

    在github上新建个repository,并将项目推送上去:https://github.com/Kybs0/GitToNugetPackageTest

    然后在Action下新建一个workflow

    选.NetCore模板,然后修改为以下内容:

     1 name: CI
     2 
     3 on:
     4   push:
     5     branches: [ master ]
     6   pull_request:
     7     branches: [ master ]
     8 
     9 jobs:
    10   build:
    11     runs-on: windows-latest
    12 
    13     # Steps represent a sequence of tasks that will be executed as part of the job
    14     steps:
    15     # 1.Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
    16     - uses: actions/checkout@v2
    17     # 2.runtime environment
    18     - name: Setup .NET Core
    19       uses: actions/setup-dotnet@v1
    20       with: 
    21         dotnet-version: 3.1.100
    22     # 3.build
    23     - name: Build with dotnet
    24       run: dotnet build --configuration Release
    25     # 4.Install Nuget
    26     - name: Install Nuget
    27       run: |
    28         $sourceNugetExe = "https://dist.nuget.org/win-x86-commandline/latest/nuget.exe"
    29         $targetNugetExe = "nuget.exe"
    30         Invoke-WebRequest $sourceNugetExe -OutFile $targetNugetExe
    31     # 5. Push  package
    32     - name: Push generated package to GitHub registry
    33       run: |        
    34         .
    uget push .GitToNugetPackageTestinRelease*.nupkg -Source https://api.nuget.org/v3/index.json -SkipDuplicate -ApiKey ${{ secrets.NugetKey }} -NoSymbols 

    以上对master分支打包,并推送到Nuget。

    需要修改的是第5步,如果workflow的yml格式文件是在解决方案下的,需要添加“.GitToNugetPackageTestinRelease*.nupkg”相对路径,改个名称就好。

    4. GitHub关联相应的Nuget源地址

    在github项目所在的设置-Secrets页面,添加第二步从nuget生成的API Key。

    添加后,尝试修改csproject中的版本号为1.0.1,然后等待github打包,打包完成后,nuget包的版本就更新成1.0.1了:https://www.nuget.org/packages/GitToNugetPackageTest/

    VS搜索nuget包:

    以上适合小白浏览的经验步骤~

    详细的打包原理及进阶,可以看俩个MVP大佬同事的博客

     dotnet 配合 GitHub 的 Action 做自动推 Tag 时打包 NuGet 包

    从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目)

  • 相关阅读:
    生成器笔记
    迭代器笔记
    hashilib_module
    Ubuntu操作及各种命令笔记
    python正则表达式2
    python正则表达式1
    python文件操作(with关键字)
    python文件操作
    python包
    python模块
  • 原文地址:https://www.cnblogs.com/kybs0/p/12982532.html
Copyright © 2020-2023  润新知