欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Nuget(BagGet)使用教程

程序员文章站 2022-04-15 16:35:05
Nuget( "BagGet" )使用教程 1. 服务器安装ASP.NET Core 网上有很多教程,不多讲,链接给你: "https://www.cnblogs.com/Agui520/p/8331499.html" 只需要安装SDK和Runtime即可。安装成功在命令窗口界面输入命令“dotne ......

nuget(bagget)使用教程

1. 服务器安装asp.net core

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

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

Nuget(BagGet)使用教程

2. 部署bagget环境

接着我们就部署环境了。服务器当然要装iis。这就不会废话了。
安装教程:
server2008:
server2012:

正题:

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

Nuget(BagGet)使用教程

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

Nuget(BagGet)使用教程

Nuget(BagGet)使用教程

3. 上传包

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

  • 上传描述

    1. 我们下载下来打来软件。"ctrl+n"创建新包
      Nuget(BagGet)使用教程
    2. 接着我们就是看到如下,需要我们填下包的描述
      Nuget(BagGet)使用教程
      Nuget(BagGet)使用教程
      我们来看下这些
      必填(前面四项)

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

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

      • 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:零个或多个

      • frameworkassemblies : 零个或多个

    目前经常用的差不多这些 填写完毕就可以看到下面内容
    Nuget(BagGet)使用教程
    Nuget(BagGet)使用教程

  • 添加要上传的内容

    在工具的右边右击就可以添加给各类东西
    Nuget(BagGet)使用教程

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

    Nuget(BagGet)使用教程

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

    Nuget(BagGet)使用教程

  • 上传流程

    全部工作准备好了,选择菜单“file”,savesavsas是保存到本地,我们选择publish
    ps:上传需要注册,并拿到key。注册教程(这篇文章内容只关注如何获取key):

    Nuget(BagGet)使用教程

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

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

4. 项目引用包

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

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

    Nuget(BagGet)使用教程
  3. 我们看下我们引用的包会在哪?
    1. 首先dll肯定在引用里面了
      Nuget(BagGet)使用教程

    2. 作为content原样复制,它是在根目录了
      Nuget(BagGet)使用教程

    3. 其他的我发现都在我们项目目录底下的“packages”的相对应的目录底下
      Nuget(BagGet)使用教程
      Nuget(BagGet)使用教程

5. 删除包

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

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

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

"packagedeletionbehavior":"harddelete" ,

Nuget(BagGet)使用教程

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

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

截图

  1. 先填好bagget的服务器,只需要修改ip即可,再填好nugetkey,当然你要是想保存在程序里,可以选择保存
    Nuget(BagGet)使用教程

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

  3. 选中版本,选中包的信息与要删除的版本就会出现右边,然后点击删除就可以了。
    Nuget(BagGet)使用教程

Nuget(BagGet)使用教程

Nuget(BagGet)使用教程