Nuget(BagGet)使用教程

1. 服务器安装ASP.NET Core

网上有很多教程,不多讲,链接给你:https://www.cnblogs.com/Agui520/p/8331499.html

只需要安装SDK和Runtime即可。安装成功在命令窗口界面输入命令“dotnet -v”便可看到下面内容。

2. 部署BagGet环境

接着我们就部署环境了。服务器当然要装IIS。这就不会废话了。
安装教程:
server2008:https://www.cnblogs.com/luckly-hf/p/4073657.html
server2012:https://jingyan.baidu.com/article/90895e0ffb5c1764ec6b0bbb.html

正题:

  • 添加应用程序池(BagGet是Core,所以应用程序池的托管模式为“无托管代码”)

  • 添加网站(Core的默认端口为5000,所以我们这边端口设置为5000,防火墙若是开启状态,请开放5000端口)

3. 上传包

上传包我们使用官方的上传工具 下载地址:https://github.com/NuGetPackageExplorer/NuGetPackageExplorer

  • 上传描述

    1. 我们下载下来打来软件。"Ctrl+N"创建新包
    2. 接着我们就是看到如下,需要我们填下包的描述


      我们来看下这些包描述
      必填(前面四项)

      • id:不区分大小写的包标识符,在 nuget.org 或包驻留的任意库中必须是唯一的。 ID 不得包含空格或对 URL 无效的字符,通常遵循 .NET 命名空间规则。

      • version:遵循 major.minor.patch 模式的包版本。 版本号可能包括预发布后缀,如包版本控制中所述。

      • description:用于 UI 显示的包的详细说明。

      • authors:作者。

      • title:明了易用的包标题,通常用在 UI 显示中,如 nuget.org 上和 Visual Studio 中包管理器上的那样。 如果未指定,则使用包 ID。

      • owners :包拥有者,使用 nuget.org 上的配置文件名称的包创建者的逗号分隔列表。

      • projectUrl:包的主页 URL,通常显示在 UI 中以及 nuget.org 中。

      • licenseUrl:许可证Url。

      • iconUrl: 64x64 透明背景图像的 URL,用作 UI 显示中包的图标。 请确保此元素包含直接图像 URL,而不是包含图像的网页的 URL。

      • requireLicenseAcceptance: 一个布尔值,用于指定客户端是否必须提示使用者接受包许可证后才可安装包。

      • developmentDependency:一个布尔值,用于指定包是否被标记为仅开发依赖项,从而防止包作为依赖项包含到其他包中。

      • summary 用于 UI 显示的包的简要说明。 如果省略,则使用 description 的截断版本。

      • releaseNotes: 此版本包中所作更改的说明,通常代替包说明用在 UI 中,如 Visual Studio 包管理器的“更新”选项卡。

      • copyright:包的版权详细信息。

      • language:包的区域设置 ID。

      • tags:以空格分隔的标记和关键字列表,描述包并通过搜索和筛选辅助包的可发现性。

      • serviceable: 可维护性,仅限内部使用。

      • minClientVersion: 指定可安装此包的最低 NuGet 客户端版本,并由 nuget.exe 和 Visual Studio 程序包管理器强制实施。

      • dependencies:零个或多个 元素的集合,用来指定包的依赖项。 每个 dependency 都具有 id、version、include (3.x+) 和 exclude (3.x+) 特性。(点击进去可看到下图,再点击下图红框进入下下图,可根据包源地址进行筛选)

      • frameworkAssemblies : 零个或多个 元素的集合,用来标识此包要求的 .NET Framework 程序集引用,从而确保引用添加到使用该包的项目。

    目前经常用的差不多这些 填写完毕就可以看到下面内容

  • 添加要上传的内容

    在工具的右边右击就可以添加给各类东西

    • build:输出到bin目录
    • content:原样拷贝
    • lib:添加引用
    • src:源码拷贝
    • tools:工具?、

    ps:上图可以看下lib的引用的dll信息,这些信息可在vs里面进行设置,包括强签名等。

  • 上传流程

    全部工作准备好了,选择菜单“File”,savesavsAs是保存到本地,我们选择publish
    ps:上传需要注册,并拿到key。注册教程(这篇文章内容只关注如何获取key):https://blog.csdn.net/wangwenru6688/article/details/50276405

    上传成功后,我们就可以在我们BagGet的web看到我们上传好的包了。



    这样,我们就将nuget包上传到我们自己的服务器了。(同个包不同版本的id应该是一样的

4. 项目引用包

接下来,我们要怎么去引用这样些nuget包呢?

  1. 首先要先添加我们自己服务器的nuget包源。
    工具=>选项=>nuget包管理器=>程序包源=>新增一条(http://192.168.101.188:5000/v3/index.json)=>点击更新
  2. 选中要引用包的项目(类库)进入nuget包管理器(怎么进的,就不解释了,自己百度去)。就可以看到我们上传的包,按照平常那样引用或者更新就可以了。(**当然你熟悉引用命令也可以直接用命令引用(原本命令与core命令都可以用),具体就不解释了,附上教程:https://www.cnblogs.com/zhaogaojian/p/8398531.html

  3. 我们看下我们引用的包会在哪?
    1. 首先dll肯定在引用里面了

    2. 作为content原样复制,它是在根目录了

    3. 其他的我发现都在我们项目目录底下的“packages”的相对应的目录底下

5. 删除包

ps:若是我们上传同样的包或是怎么样的呢?这边会报409的状态异常的错误包,上传工具并不会提醒你上传失败,或者已有此包。

所以我们若是要重新上传或更新已有的版本,或者上传错误,想要删除肯定要删除我们已经上传的包。但是我发现大佬只做了接口,并没有集成在页面,页面是用来node.js和React,表示是个前端渣,但不懂,不懂得修改,所以就自己做了个winform来删除包源。

但是要注意下,这边大佬是分软删除硬删除的,软删除只是网页看不见了,但其实你知道包id还是同样可以引用,更坑的是,软删除,nuget管理器还是可以看到你的包。硬删除就是大家所理解的将包真的删除掉了。
那么如何开启呢,BagGet采用的是Core,所以配置项并不是在Web.config中,而是appsettings.json,只需要在配置加上这句话,就成了硬删除了,若是要软删除,就去掉这句话。

"PackageDeletionBehavior":"HardDelete" ,

那附上我自己写的删除winform吧。

链接: https://pan.baidu.com/s/1bLQ_GTh92wr0Vt9z7JhsPQ 提取码:
db69

截图

  1. 先填好BagGet的服务器,只需要修改ip即可,再填好NuGetKey,当然你要是想保存在程序里,可以选择保存

  2. 接着刷新,下面的树就会刷新出来,你的nuget服务器上的程序包,以及版本

  3. 选中版本,选中包的信息与要删除的版本就会出现右边,然后点击删除就可以了。

Nuget(BagGet)使用教程的更多相关文章

  1. NuGet服务器搭建教程

    本文主要来自网络,进行整理而成,相关文章如下: http://diaosbook.com/Post/2012/12/15/setup-private-nuget-server https://www. ...

  2. 使用命令行打包 nuget 包

    对于那些不打算涉及这么复杂而又想制作自己的 nuget 包的园友们,我是推荐使用 Nuget Package Explorer 来制作的.关于这个图形化的 nuget 包管理软件的使用,博客园内有相关 ...

  3. vs2015编译使用GRPC

    1.获取源码:位于github上 电脑装有git的直接克隆,未装git下载压缩包也可以 git clone  https://github.com/grpc/grpc.git cd grpc git ...

  4. Senparc.Weixin.MP SDK 微信公众平台开发教程(二十二):如何安装 Nuget(dll) 后使用项目源代码调试

    最近碰到开发者问:我使用 nuget 安装了 Senparc.Weixin SDK,但是有一些已经封装好的过程想要调试,我又不想直接附加源代码项目,这样就没有办法同步更新了,我应该怎么办? 这其实是一 ...

  5. 搭建私有 Nuget 服务器教程(1)

    对于 .NET 开发者来说,nuget 是必不可少的程序包管理工具.相应地,大部分开发团队都需要在内部搭建 Nuget 服务器,以管理私有 nupkg 包.本教程所使用的 Nuget 服务器,不是微软 ...

  6. NuGet安装及使用教程

    Nuget是一个.NET平台下的开源的项目,它是Visual Studio的扩展.在使用Visual Studio开发基于.NET Framework的应用时,Nuget能把在项目中添加.移除和更新引 ...

  7. Nuget发布教程

    nuget setApiKey Your-API-Key -Source https://www.nuget.org/api/v2/package nuget spec nuget pack Monk ...

  8. 在nuget上发布自己的程序集教程

     前期准备 [1]注册nuget官网账号:注册地址:https://www.nuget.org/ [2]下载Nuget.exe文件:下载地址:https://www.nuget.org/downloa ...

  9. VS使用Nuget教程详解 Visual studio 安装第三方的组件库

    首先说明Nuget是什么呢?它的官方是:https://www.nuget.org/ 官方主页的介绍如下: What is NuGet? NuGet is the package manager fo ...

随机推荐

  1. 【方案】mvc 保证定时器回收限制

    在项目中我们或多或少的遇到一些需要定时触发或者计算的东西,这个时候我们就需要定时器来作为解决方案.非常好思路清晰,业务逻辑完好,定时器也开好了,当我们信心满满的挂到IIS服务器的时候,发现写的定时器在 ...

  2. vue实现双向数据绑定的原理

    vue实现双向数据绑定的原理就是利用了 Object.defineProperty() 这个方法重新定义了对象获取属性值(get)和设置属性值(set)的操作来实现的. 在MDN上对该方法的说明是:O ...

  3. Win32项目生成的程序exe图标显示异常的问题

    问题 如图: 用VS2013生成exe执行文件时发现的问题,起初以为是没添加ico图像的最小尺寸,后来查看ico并不是这个问题. Baidu.Google了半天找到原因:文件资源管理器的图标缓存bug ...

  4. Visual Studio的常用快捷键

    项目相关的快捷键 Ctrl + Shift + B   生成项目 Ctrl + Alt + L   显示Solution Explorer(解决方案资源管理器) Shift + Alt+ C   添加 ...

  5. DCGAN 论文简单解读

    DCGAN的全称是Deep Convolution Generative Adversarial Networks(深度卷积生成对抗网络).是2014年Ian J.Goodfellow 的那篇开创性的 ...

  6. C#实现联通短信Sgip协议程序源码

    此程序为中国联通Sgip协议程序接口,适合在中国联通申请了短信发送端口的公司使用. 短信群发已经成为现在软件系统.网络营销等必不可少的应用工具.可应用在短信验证.信息群发.游戏虚拟商品购买.事件提醒. ...

  7. web页面中http返回的状态码解释

    状态码类别:   1xx: 信息类,表示客户发送的请求服务端正在处理   2xx:成功类,服务器 成功接收请求   3xx:重定向类,服务器中找到了多个请求内容,则需要用户再次操作选择   4xx:客 ...

  8. 18.app后端如何实现LBS

    移动互联网,除了一直在线这个特点外,还有一个重要特点,能定位到手机的位置.查找附近的人,附近的餐馆等服务,以及大量的o2o应用, 都需要使用LBS(Location Based Services).那 ...

  9. 玩转Spring MVC(五)----在spring中整合log4j

    在前边的基础上,本文主要总结一下如何在spring 中配置log4j,在本文末尾会给出完整项目的链接. 首先是web.xml中要新添加的代码: <!-- 6. 配置log4j --> &l ...

  10. python已安装了一个包,但是导入包中的模块时报错没有这个包

    执行import sys; print(sys.path)查看python搜索路径,确保自己的模块在python搜索路径中 python的搜索路径与包(package) python的搜索路径其实是一 ...