docker 中搭建nuget

docker 中搭建nuget

简介

NuGet是一个自由开源软件包管理系统。用于Microsoft开发平台。以前称NuPack 2010年首次发布。已经进化为一个庞大的工具与服务生态系统。 NuGet作为Visual Studio扩展,能够简化在Visual Studio项目中添加、更新和删除库(部署为程序包)的操作。NuGet包是打包成单个ZIP 文件,文件扩展名是.nupkg,使用开放打包约定 (OPC) 格式,包含编译代码 (Dll)、与该代码相关的其他文件以及描述性清单(包含包版本号等信息)。从Visual Studio 2012开始,缺省预安装了NuGet。NuGet也集成入了SharpDevelop。NuGet也可以用于命令行或者脚本自动化。

注册nuget账号

  1. 前往nuget.org,然后通过微软账号登录或注册账号
  2. 登录成功后,点击右上方自己名称,点击API Keys
  3. 填写相关内容,然后点击Create

微信截图_20191129211657

  1. 完成后显示如下:

nuget-2

  1. 点击上面的Copy,复制出生成的Api Key,此Key复制后请保留好,页面刷新后将不会在显示Copy只能重新生成

安装nuget

  1. mkdir /data/nuget
  2. docker中运行
docker run -d -p 9988:80 -e NUGET_API_KEY=apikey -v /data/nuget/database:/var/www/db -v /data/nuget/packages:/var/www/packagefiles --name nuget-server sunside/simple-nuget-server:latest

其中 apikey 替换为之前复制的内容 /data/nuget/packages 为上传后的包存放目录 /data/nuget/database 为nuget的数据库

上传nuget

  1. 下载nuget.exe,并将文件放置到C:\Program Files\dotnet 下载链接地址 https://dist.nuget.org
  2. dotnet pack 命令打包类库
  3. cd /bin/Debug 然后 nuget push -Source nuget-serverurl -ApiKey apikey class.nupkg
  4. dotnet pack -p:PackageVersion=1.0.1 设置版本号

nuget-serverurl 为nuget服务器的地址
apikey 为之前复制的内容
class.nupkg /bing/Debug下生成的文件

使用bat文件

@set nuget_source= nuget-serverurl
@set nuget_key= apikey 

@set /p package_version=Enter the global nuget package version(like:6.6.6):

@echo bulid solution
dotnet build ..\project.sln
@echo package project
dotnet pack -p:PackageVersion=%package_version%
@echo nuget package successful

@echo push project
dotnet nuget push .\bin\Debug\project.%package_version%.nupkg -k %nuget_key% -s %nuget_source% --timeout 360
@echo all nuget package pushed
@pause

使用sh文件

NUGET_SOURCE= nuget-serverurl
NUGET_KEY= apikey

echo -e "Enter the global nuget package version(like:6.6.6): \n"
read PACKAGE_VERSION

echo build solution
dotnet build ..\project.sln
echo package project
dotnet pack -p:PackageVersion=$PACKAGE_VERSION
echo nuget package successful

echo push project
dotnet nuget push ./bin/Debug/project.$PACKAGE_VERSION.nupkg -k $NUGET_KEY -s $NUGET_SOURCE --timeout 360
echo all nuget package pushed

IMG_3894