.NET Core:搭建私有Nuget服务器以及打包发布Nuget包

一.借助Docker搭建私有Nuget服务器
使用nuget包的优势不言而喻,举个常见的例子,A团队和B团队都用到同一个类库,这个时候A团队和B团队不需要这个类库的代码,只需要用Nuget包还原,就能完成引用。与此同时,如果这个类库升级了,只要引用的Nuget包还是一样的版本,就不会出现引用升级而造成的编译错误。
而出于工作环境或其他原因,Nuget包可能不能发布到公有的Nuget服务器,这个时候可以考虑Docker一键搭建一个内网可以访问的Nuget服务器。
这里我们假设你已经有一台运行Docker的服务器,输入如下命令:

docker run -d  -p 8080:80 -v $PWD/nuget/db:/var/www/db -v $PWD/nuget/packages:/var/www/packagefiles  -e NUGET_API_KEY=ee28314c-f7fe-2550-bd77-e09eda3d0119  sunside/simple-nuget-server

-v 用当前目录的nuget文件夹挂载Nuget服务器的数据
-e NUGET_API_KEY=ee28314c-f7fe-2550-bd77-e09eda3d0119 设置Nuget服务器的管理Key

访问Nuget服务器

二. 打包发布Nuget包

dotnet pack [--help] [--output] [--no-build] [--build-base-path] [--configuration] [--version-suffix] [project]

需要注意的是如果已经存在的Nuget包,再发布是会提示错误的,如果不是正式版本的升级,则需要其他标识区分,如beta1,则执行的命令为dotnet pack --version-suffix beta1


dotnet pack

默认的输出文件夹在bin目录下的Debug目录,可以看到生成了对应版本号的相关文件。


打包好的nuget包

接下来借助Nuget.exe执行如下命令:
Nuget.exe push -Source {NuGet package source URL} -ApiKey key {your_package}.nupkg
发布Nuget包

三.引用私有Nuget服务器的Nuget包
对于VS,可以直接配置Nuget来直接还原私有服务器上的Nuget包


配置Nuget

列出Nuget包

然而对于VSCode或者其他编辑器来讲,如果没配置过Nuget,则需要在项目中引入Nuget.config来完成

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
    <add key="184" value="http://192.168.9.184:8080" />
  </packageSources>
  <disabledPackageSources>
    <add key="Microsoft and .NET" value="true" />
  </disabledPackageSources>
  <packageRestore>
    <add key="enabled" value="True" />
    <add key="automatic" value="True" />
  </packageRestore>
  <bindingRedirects>
    <add key="skip" value="False" />
  </bindingRedirects>
</configuration>

本文采用 知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议
转载请注明:作者 张蘅水

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Docker — 云时代的程序分发方式 要说最近一年云计算业界有什么大事件?Google Compute Engi...
    ahohoho阅读 15,627评论 15 147
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,241评论 4 61
  • 唯美食与爱不可辜负。。 出去玩 最喜欢逛小吃街 最爱的还是你陪我逛吃逛吃 我负责吃 你负责拍 perfect ✌✌...
    嗷喵喵阅读 699评论 8 2
  • 民国四大国学大师各有特色,一言以蔽之:梁启超的入世、王国维的孤独、赵元任的洒脱、陈寅恪的严谨。我最推崇陈寅恪...
    闻霈阅读 1,319评论 22 25
  • 不打开相册就不必想你的样子,不倾吐过往就不必念你的名字,不重复那首合唱的歌就不必遗憾你的品位与我相似。我真的没有想...
    一枚小番茄阅读 455评论 0 0