title author date CreateTime categories
Github 给仓库上传 NuGet 库
lindexi
2019-11-20 08:18:14 +0800
2019-10-19 15:55:49 +0800
git

在 Github 可以发布自己的 NuGet 库,本文将告诉大家如何发布

在 Github 的仓库的首页,可以看到 Package 功能

点击打开一个项目的 Package 默认会邀请你加入,点击开启功能

在 Github 会显示如何做 NuGet 的上传,上面的 GH_TOKEN 就是自己生成的代表自己密码,请看文档 创建用于命令行的个人访问令牌 - GitHub 帮助

大概的方法就是点击 Settings -> Developer settings -> Personal access tokens 如下图

单击 Generate new token(生成新令牌)

输入随意的名字,然后注意勾选 Package 权限,也就是 write:packages 和 read:packages 权限

将页面拉到最下,点击 Generate token 按钮就可以创建密码

如图片的 e9040b0fb3fbd0b4971660c1c04d615a630dce6e 就是我创建的密码,这个密码请保存起来,因为刷新页面就看不到了

然后在对应的仓库配置密码,在默认打开 package 页面的时候就可以看到

 // Step 1: Authenticate
$ nuget source Add -Name "GitHub" -Source "https://nuget.pkg.github.com/lindexi/index.json" -UserName lindexi -Password GH_TOKEN // Step 2: Pack
$ nuget pack // Step 3: Publish
$ nuget push "lindexi_gd.nupkg" -Source "GitHub"

小伙伴的第一步的 Source 的内容请替换为你自己的仓库的内容,还需要替换的是刚才 github 生成的 GH_TOKEN 密码

如我将 GH_TOKEN 替换为上面复制的密码,对每个组织和个人创建一个 Name 所以我就将上面的 GitHub 替换为 GitHubLindexi 这样就可以设置上传

nuget source Add -Name "GitHubLindexi" -Source "https://nuget.pkg.github.com/lindexi/index.json" -UserName lindexi -Password e9040b0fb3fbd0b4971660c1c04d615a630dce6e

接下来创建一个测试的 NuGet 包

dotnet new console -o Lindexi_gd

然后编译生成 NuGet 库

cd Lindexi_gd
dotnet pack
cd bin\Debug

在 bin\Debug 文件夹可以看到 nupkg 文件,用下面命令上传

nuget push Lindexi_gd.1.0.0.nupkg -Source GithubLindexi

刷新一下页面就可以看到上传的文件

如果在上传的时候提示下面代码

RepoAcceptsPackageUploads: Repository "lindexi/HehuhallqaLinearjeebar.Source" does not exist.

原因是要求 NuGet 库的 id 必须要在对应的 github 组织找到对应的仓库,如我上面上传 HehuhallqaLinearjeebar.Source.1.0.0.nupkg 文件,但是我没有 HehuhallqaLinearjeebar.Source 仓库,所以提示不能上传

此时可以通过在 .nuspec 文件添加 repository 属性,格式如下

<repository type="git" url="https://github.com/lindexi/HehuhallqaLinearjeebar"/>

这样多个库可以使用相同仓库,上面代码需要写到 package 的 metadata 才能使用

<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>HehuhallqaLinearjeebar.Source</id>
<version>1.0.3</version>
<authors>lindexi</authors>
<description>Sample exists only to show a sample .nuspec file.</description>
<language>en-US</language>
<repository type="git" url="https://github.com/lindexi/HehuhallqaLinearjeebar"/>
</metadata>
</package>

如果是在 csporj 可以通过添加下面属性

    <RepositoryType>git</RepositoryType>
<RepositoryUrl>https://github.com/lindexi/UWP</RepositoryUrl>

注意 RepositoryUrl 的格式是 用户名/仓库 如果自己的上传的文件是在仓库里面的文件夹,请写在 PackageProjectUrl 属性

2019-11-20-Github-给仓库上传-NuGet-库的更多相关文章

  1. 使用Github Packages功能上传nuget包到Github

    前几天微软收购npm的新闻对于软粉来收很是振奋.微软收购npm很可能是为了加强Github Packages.目前Github,Typescript,VSCode,npm这些开源社区的重磅工具全部都在 ...

  2. iOS:给Git仓库上传代码时,超过100M会被拒绝(例如github和oschina)

    处理GitHub不允许上传大于100M文件问题?本人也遇到这个坑... 来自转载,原文链接:http://www.cnblogs.com/qmmq/p/4604862.html 1.报错: 自己的项目 ...

  3. github之怎么上传本地项目

    github之怎么上传本地项目 以前都是在自己磁盘上的某个目录下,然后打开git bash,来进行把本地的一些文件推到远程github上. 之前的方法步骤: 1.在github上new一个库,然后gi ...

  4. githe和github连接,上传

    Git入门 如果你完全没有接触过Git,你现在只需要理解通过Git的语法(敲入一些命令)就可以将代码上传到远程的仓库或者下载到本地的仓库(服务器),可知我们此时应该有两个仓库,就是两个放代码的地方,一 ...

  5. gitee仓库上传文件的步骤

    一:Git是什么? Git是一种代码托管技术.在开发中,Git是一种代码托管技术,很多代码托管平台也是基于Git来实现的.Git可以帮我们做到很多的 事情,比如代码的版本控制,分支管理等. 可以把Gi ...

  6. 为 .net 生态贡献力量——制作并上传 nuget 包(内有独家彩蛋)

    前言 nuget 是 .net 的常用包管理器,目前已经内置到 Visual Studio 2012 以后的版本.大多数 .net 包都托管在 nuget.org,包括 .net core 框架基础包 ...

  7. win10 uwp 上传Nuget 让别人用我们的库

    Nuget 我们的开发经常使用别人的dll,那么我们需要每次都从网上下载,然后复制到我们的项目, 而不知道我们的dll是否安全? 当我们的库更新的时候,我们又需要从网上搜索,这样不好,于是我们就用Nu ...

  8. 关于新项目上传远程库报错 non-fast-forward

    已有项目上传远程库会报错 non-fast-forward 首先使用命令行 git pull origin master --allow-unrelated-histories 之所以使用这个命令,是 ...

  9. (转)如何将本地git仓库上传到GitHub中托管+实践心得

    Git——新手入门与上传项目到远程仓库GitHub(转) - Chen_s - 博客园http://www.cnblogs.com/Chenshuai7/p/5486278.html 注意的问题: 1 ...

随机推荐

  1. KDD2016,Accepted Papers

    RESEARCH TRACK PAPERS - ORAL Title & Authors NetCycle: Collective Evolution Inference in Heterog ...

  2. pycharm 2017 序列号失效问题解决(2016-2017版本都有效)

    pycharm 序列号失效问题解决   this license BIG3CLIK6F has been cancelled  具体如下: 对,没错,这个激活码本来可以使用到2018年的,但是,忽然间 ...

  3. 【时光回溯】【JZOJ3567】【GDKOI2014】石油储备计划

    题目描述 输入 输出 对于每组数据,输出一个整数,表示达到"平衡"状态所需的最小代价. 样例输入 2 3 6 1 5 1 2 1 2 3 2 5 4 5 4 3 2 1 3 1 1 ...

  4. Facebook POP 进阶指南

    本文转自Kevin Blog Facebook 在发布了 Paper 之后,似乎还不满足于只是将其作为一个概念性产品,更进一步开源了其背后的动画引擎 POP,此举大有三年前发布的 iOS UI 框架  ...

  5. “龙井”开箱评测 |Alibaba Dragonwell 新手上路指南

    作者|阿里云智能事业群 高级技术专家 陆传胜 阿里巴巴有着最丰富的 Java 应用场景,覆盖电商,金融,物流等众多领域,是世界上最大的 Java 用户之一. 2019 年 3 月 21 日,阿里巴巴在 ...

  6. PB 级数据处理挑战,Kubernetes如何助力基因分析?

    摘要: 一家大型基因测序功能公司每日会产生 10TB 到 100TB 的下机数据,大数据生信分析平台需要达到 PB 级别的数据处理能力.这背后是生物科技和计算机科技的双向支撑:测序应用从科研逐步走向临 ...

  7. (译)Objective-C的动态特性

    这是一篇译文,原文在此,上一篇文章就是受这篇文章启发,这次干脆都翻译过来. 过去的几年中涌现了大量的Objective-C开发者.有些是从动态语言转过来的,比如Ruby或Python,有些是从强类型 ...

  8. Go语言开发教程

    Go语言简述 兴起:2009年Gogle发布的第二款开源编程语言 特征: 语法简单:语法标准比较严格,适合开发人员短时间高效的服务端开发. 并发模型:Goroutine是Go最显著的特征,使用类协程的 ...

  9. 解决eclipse不会自动弹出Console控制台的问题

    有时候Eclipse启动,控制台console不会自动跳出来,需要手工点击该选项卡才行, 解决方案: windows  ->   preferences   ->  run/debug   ...

  10. SDUT-3362_村村通公路

    数据结构实验之图论六:村村通公路 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 当前农村公路建设正如火如荼的展开,某乡 ...