美文网首页
.Net Core 本地搭建 Nuget 服务器并打包推送

.Net Core 本地搭建 Nuget 服务器并打包推送

作者: Rinaloving | 来源:发表于2022-09-19 12:44 被阅读0次
    1. 背景
    • 网上大部分是自己搭建的,这里我在github 上直接拿别人的项目 https://github.com/loic-sharma/BaGet/releases

    • 下载包


      BaGet.png
    • 解压到本地或者服务器上并修改 appsettings.json 文件


      Nuget.png
      "ApiKey": "69279c9e-c6f4-48ee-8d9d-72d38dab4b95",
      "PackageDeletionBehavior": "harddelete",
      "Urls":"http://*:9020",
      "AllowPackageOverwrites": true,
    
    
    修改配置.png
    • 上图中是比较重要的几个参数,

    • “ApiKey”是密钥,每次推送或者删除Nuget包时都需要输入这个代码;

    • “Urls”是路由地址和端口号,原来是5000,需要改为8020;

    • “PackageDeletionBehavior"是删除方式,默认“Unlist”,删除时不会将源文件删除,只是在前端显示时看不到了,这会导致再次*
      推送同一个包时报错,所以这改为"harddelete”,将原来的包彻底删除。

    • "AllowPackageOverwrites"是是否允许覆盖,默认“false”,不允许覆盖,改为true之后推送新的包会将原来的包覆盖掉。

    3. 开启nuget服务(用IIS部署和正常项目一样)
    • cmd 到目录 ,执行 dotnet BaGet.dll
    4. 访问地址
    访问.png
    5 项目dll 打包
    打包.png
    结果.png 生成文件.png
    6. 推送
    • dotnet nuget push -k <密钥> -s http://192.168.1.:9/v3/index.json <包名>.nupkg
    E:\项目\2022年项目\****\SdNurseryMall\src\com.uplus.tree\bin\Debug>dotnet nuget push  -k  69279c9e-c6f4-48ee-8d9d-72d38dab4b95 -s http://192.168.1.***:9***/v3/index.json com.uplus.tree.1.0.0.nupkg
    正在将 com.uplus.tree.1.0.0.nupkg 推送到 'http://192.168.1.**:90**/api/v2/package'...
      PUT http://192.168.1.**:90**/api/v2/package/
      Created http://192.168.1.**:90**/api/v2/package/ 1245 毫秒
    已推送包。
    
    
    7. 结果
    网页.png
    8 . VS2019 中配置
    • 在VS软件中,选择“工具-Nuget包管理器-程序包管理器设置”,选择程序包源,


      vs_nuget设置.png
      nuget_org.png
    更换源.png
    • 第一个nuget.org就是默认我们通过网络获取程序包的地址,第二个是我新添加的本地的nuget包地址,方法是点击 “+”,新增源。在名称中输入我们为这个源起的名字,源中输入路由地址,这个地址可以在服务的网页上看到,如果是添加服务器源的话,就将IP改为对应的地址就好。


      更换网址.png
    9. VS 中查看
    错误.png
    错误原因.png 最终结果.png
    9. 补充
    • 删除包:命令行输入dotnet nuget delete -s http://localhost:8020/v3/index.json xxx 1.0.0,就可以把服务器上的包删除掉,注意这里只写“包名 版本号”就行,“.nupkg”的后缀也不用加。

    • 需要注意这里的命令是在配置文件中没有设置密钥的情况下,如果设置了就需要在命令行中加入密钥才可以执行操作。
      设置包的信息:在项目右键属性,选择打包,在里面可以设置版本号,作者等信息。

    • 下载自己推送的包
      包已经被推送到服务器上了,下面就是当我们需要的时候下载它。

    • 在“工具-Nuget包管理器-管理解决方案的Nuget程序包”中最右边“程序包源”选择我们自己创建的"UplusNuget",就可以在左边看到我们已经推送的包,点击包在右侧会出现包的信息,选择版本,进行下载。

    • 关于包的依赖关系,如果A包依赖B包,我们将两个包都已经推送到服务器,那么在我们下载A包时,会自动也下载B包。如果服务器上只有A包,那么在下载时就会报错,找不到B包。

    • 关于包的加密,为了保障包的安全,防止下载 后对包进行反编译,需要进行一些保护,但目前还没有找到比较好的方式,待添加。

    相关文章

      网友评论

          本文标题:.Net Core 本地搭建 Nuget 服务器并打包推送

          本文链接:https://www.haomeiwen.com/subject/hrtvortx.html