1、API.Keys
使用Nuget.Server时,需要用到API.Keys,在 nuget.org 上创建密钥。详细内容可以参考的链接Nuget 通过 dotnet 命令行发布。(文章中的dotnet nuget 应该只适用于.net core(没有验证,暂这么记录))
2、docker + jenkins 启动nuget-server服务。
docker 设置
#创建挂载文件夹
sudo mkdir -p /data/docker/nuget/{database,packages}
#获取镜像,也可以在jenkins中启动容器时自动拉取。
docker pull sunside/simple-nuget-server
jenkins->shell脚本
#jenkins shell代码
# 第一次启动时要注释掉,后期改下判断,用inspect,当容器不存在时运行会报错
docker stop nuget-server
docker rm nuget-server
docker run --detach=true \
--publish 5500:80 \
--env NUGET_API_KEY=你的APIKey \
--volume /data/docker/nuget/database:/var/www/db \
--volume /data/docker/nuget/packages:/var/www/packagefiles \
--name nuget-server \
sunside/simple-nuget-server
#如果以后忘记了NUGET_API_KEY,可以通过以下命令查看:
docker inspect <CONTAINER-NAME> OR <CONTAINER-ID>
#然后在结果里找到 Config/Env/NUGET_API_KEY节点。
在浏览器中输入:http://你的服务器:5500/,可以查看到页面如下:
3、打包并上传
项目右键增加【打包并上传】的自定义菜单,使用bat命令完成对项目打包,生成nupkg包并上传到nuget-server服务。
3.1 项目增加版本信息(.net core,.net framework 还没试过)
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<Version>1.0.1.1</Version>
<AssemblyVersion>1.2.0.0</AssemblyVersion>
<FileVersion>1.3.0.0</FileVersion>
</PropertyGroup>
</Project>
3.2 bat命令行
.net core 项目,将下边命令保存到本地bat文件中。
第一行是打包,第二行是把打包的文件上传;第三行是把包从temp文件夹拷贝到本地Nuget包(可要可不要)。
dotnet pack %1 -c Release --include-source -o E:\Develop\TFS\Nuget\Temp
dotnet nuget push -s http://yournugetsiite:8088 -k yourapikey E:\Develop\TFS\Nuget\Temp\%~2.*.nupkg
move E:\Develop\TFS\Nuget\Temp\*.nupkg E:\Develop\TFS\Nuget\
.net framework项目
1、下载nuget.exe,本地存储路径:D:\Tools\Nuget\nuget.exe(非必须,和后边保持一致即可),将D:\Tools\Nuget增加到环境变量PATH
2、bat文件.和.net core 类似,忽略了第三步的拷贝
nuget pack %1 -Build -Symbols -Prop Configuration=Release -OutputDirectory E:\Develop\TFS\Nuget\Temp
nuget push E:\Develop\TFS\Nuget\Temp\%~2.*.nupkg 你的apikey -Source http://你的服务ip:5500
3.3、创建自定义菜单【打包并上传】
工具-》外部工具-》添加
【标题】 可以随意填写,83是我的服务器
【命令】 上边bat文件的路径
【参数】 $(ProjectDir)$(ProjectFileName) $(TargetName)
!!!注意第三个$前有一个空格,建议原封不动的贴过去!!!(应该是避免命令执行过程中没有没有空格分割问题)
勾选了【使用输出窗口】是因为可以直接在下面的output窗口输出,可以看到生成的过程
3.4 将自定义菜单【打包并上传】添加到项目右键
工具-》自定义-》命令-》上下文菜单-》项目和解决方案上下文菜单|项目-》添加命令-》工具-》右侧外部命令
3.5 右键点击【打包并上传】,在输出窗口能看到如下信息
3.6 设置nuget包源
3.7 选择创建的程序包源。
可以看到已经推送上去的包,第一次加载可能慢点,多刷新几次。实在不行就重启一次。