nuget服务器搭建,以及如何发布一个Nuget包
2017-12-17 13:10
393 查看
本文章主要介绍如何将本地dll打包成为一个Nuget包,并如何发布到自己的nuget服务器,示例代码下载。章节如下
1. 本地dll如何打包,以及版本的更新
2. 在linux上搭建nuget.server
3. 在windows上搭建nuget.server
4. nuget常用命令
nuget.exe下载地址:https://www.nuget.org/downloads。
下载完成后,不需要安装。请将nuget.exe复制到需要打包的项目文件夹中
2. 打包成.nupkg包
![](http://ov1e3fd5m.bkt.clouddn.com/nuget/nuget-packages-init.png)
首先运行
然后运行
对项目进行版本行,可以配置.csprojc文件,如下所示:
此处需要注意的时候,默认创建的dll是没Version, AssemblyVersion, FileVersion节点,需要自己手动添加;以及在更新版本后 .nuspec文件会根据版本重新创建一个:
![](http://ov1e3fd5m.bkt.clouddn.com/nuget/nuget-version.png)
![](http://ov1e3fd5m.bkt.clouddn.com/nuget/nuget-packages-source.png)
然后把发布的.nupkg包放在此文件夹即可
![](http://ov1e3fd5m.bkt.clouddn.com/nuget/nuget-vs-import-forwin.png)
注意,如果用的是linux版本,测源地址中不需要加nuget子目录。
![](http://ov1e3fd5m.bkt.clouddn.com/nuget/nuget-packages-use.png)
-v nuget:当前目录下nuget文件夹映射为 nuget-server的包,其中要有packages文件夹。他也有映射
nuget_api_key:表示此Nuget仓库的索引Key。push的要用的
打包 进入到项目根目录,也就是包含.csproj文件的目录
命令成功后,会在bin/Debug目录下创建.nupkg文件
![](http://ov1e3fd5m.bkt.clouddn.com/nuget/nuget-pack.png)
发布包 必须进入到.nupkg包所在位置
![](http://ov1e3fd5m.bkt.clouddn.com/nuget/nuget-push-docker.png)
![](http://ov1e3fd5m.bkt.clouddn.com/nuget/nuget-vs-import.png)
在vscode中的引用
配置nuget.config配置文件
然后运行
![](http://ov1e3fd5m.bkt.clouddn.com/nuget/nuget-vscode-import.png)
![](http://ov1e3fd5m.bkt.clouddn.com/nuget/nugetserver-win-stepone.png)
引入nuget.server这个nuget包
![](http://ov1e3fd5m.bkt.clouddn.com/nuget/nugetserver-win-steptwo.png)
更改配置
配置节点都在appSettings节点下
![](http://ov1e3fd5m.bkt.clouddn.com/nuget/nugetserver-win-stepthree.png)
运行成功
![](http://ov1e3fd5m.bkt.clouddn.com/nuget/nugetserver-win-stepfour.png)
发布和移除包 因为Nuget的客户端只有一个,可以参考docker搭建章节的push和delele
当然dotnet 也是一样的
1. 本地dll如何打包,以及版本的更新
2. 在linux上搭建nuget.server
3. 在windows上搭建nuget.server
4. nuget常用命令
一、本地dll如何打包,以及版本的更新
本小节主要介绍两种方式将本地dll打包为Nuget包,1.1 利用nuget.exe进行打包(应用于.net framework)
1. 下载nuget.exenuget.exe下载地址:https://www.nuget.org/downloads。
下载完成后,不需要安装。请将nuget.exe复制到需要打包的项目文件夹中
2. 打包成.nupkg包
![](http://ov1e3fd5m.bkt.clouddn.com/nuget/nuget-packages-init.png)
首先运行
.\nuget sepc生成.nuspec配置文件,用于nuget的配置项
然后运行
.\nuget pack packageName发布成nuget包
3. 注意
此类库更新版本之后,再打包成.nuget文件,是不会重新生成.nuspec文件。1.2 使用dotnet 进行打包(应用于.net core )
运行dotnet pack即可对当前项目打包,必须在当前项目文件夹中支持(还有.csproj文件的目录)
对项目进行版本行,可以配置.csprojc文件,如下所示:
<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>
此处需要注意的时候,默认创建的dll是没Version, AssemblyVersion, FileVersion节点,需要自己手动添加;以及在更新版本后 .nuspec文件会根据版本重新创建一个:
![](http://ov1e3fd5m.bkt.clouddn.com/nuget/nuget-version.png)
1.3 配置nuget源
1. 本地文件包的方式
配置本地Nuget源。在工具 nuget包管理器 -> 程序包源,做如下配置![](http://ov1e3fd5m.bkt.clouddn.com/nuget/nuget-packages-source.png)
然后把发布的.nupkg包放在此文件夹即可
2. 配置自己服务器的源
![](http://ov1e3fd5m.bkt.clouddn.com/nuget/nuget-vs-import-forwin.png)
注意,如果用的是linux版本,测源地址中不需要加nuget子目录。
1.4 使用
引入界面如下:![](http://ov1e3fd5m.bkt.clouddn.com/nuget/nuget-packages-use.png)
二、在linux上搭建nuget.server
本小节介绍如何使用docker来搭建属于自己的Nuget仓库2.1. 运行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文件夹映射为 nuget-server的包,其中要有packages文件夹。他也有映射
nuget_api_key:表示此Nuget仓库的索引Key。push的要用的
2.2 创建一项目打包和发布
创建一个 classlib 库文件(web,或者webapi是不能打包的)dotnet new classlib -n Nu.Common
打包 进入到项目根目录,也就是包含.csproj文件的目录
dotnet pack
命令成功后,会在bin/Debug目录下创建.nupkg文件
![](http://ov1e3fd5m.bkt.clouddn.com/nuget/nuget-pack.png)
发布包 必须进入到.nupkg包所在位置
..\..\nuget.exe push -Source http://localhost:8080 -ApiKey ee28314c-f7fe-2550-bd77-e09eda3d0119 Nu.Common.1.0.0.nupkg
![](http://ov1e3fd5m.bkt.clouddn.com/nuget/nuget-push-docker.png)
2.3. 引用包
在vs中的引用![](http://ov1e3fd5m.bkt.clouddn.com/nuget/nuget-vs-import.png)
在vscode中的引用
配置nuget.config配置文件
<?xml version="1.0" encoding="utf-8"?> <configuration> <packageSources> <add key="mySource" value="http://localhost:8080" /> </packageSources> </configuration>
然后运行
dotnet add package Nu.Common(包名)即可.
![](http://ov1e3fd5m.bkt.clouddn.com/nuget/nuget-vscode-import.png)
三、在windows上搭建
此方式更为简单,因为nuget上有现在的nuget.server这包,就是用于做这件事情的。步骤如下(此nuget包不支持.net core版本):3.1 搭建项目
创建一个mvc 项目(空) 此项目必须的.net Framework版本必须>=4.6。![](http://ov1e3fd5m.bkt.clouddn.com/nuget/nugetserver-win-stepone.png)
引入nuget.server这个nuget包
![](http://ov1e3fd5m.bkt.clouddn.com/nuget/nugetserver-win-steptwo.png)
更改配置
节点名 | 说明 |
apiKey | nuget.server的密钥配置,用于Push和delete包 |
packagesPath | nuget.server中的包存放路径 |
3.2 运行此项目
解决一个错误,如果在运行时提示如下错误,请按照提示删除相应的节点![](http://ov1e3fd5m.bkt.clouddn.com/nuget/nugetserver-win-stepthree.png)
运行成功
![](http://ov1e3fd5m.bkt.clouddn.com/nuget/nugetserver-win-stepfour.png)
发布和移除包 因为Nuget的客户端只有一个,可以参考docker搭建章节的push和delele
四、常用命令
命令 | 说明 | 示例 |
push | 发布一个包到nuget.server,包名 apikey, -Source是必须的 | .\nuget.exe push .\ClassLibrary1.1.2.0.nupkg samlong -Source http://localhost:56546/nuget |
delete | 从指定 -Source上移除一个包,必须指定版本 | ..\..\nuget.exe delete Nu.Common 1.0.0 samlong -Source http://localhost:56981/nuget |
list | 查看服务器上有那些nuget 包 | .\nuget.exe list -Source http://localhost:56546/nuget |
相关文章推荐
- 搭建了一个Apache+Php+MySQL的服务器。要如何通过Apache发布网站使得其他的电脑可以通过局域网访问?
- 在VS中自动生成NuGet包以及搭建自己的或单位内部的NuGet服务器
- 如何快速搭建一个服务器
- 如何用AWS(亚马逊云服务器)搭建一个自己的blog (3) – 如何登陆到AWS建立的网络服务器
- 通过ProGet搭建一个内部的Nuget服务器
- 用树莓派搭建你自己的Web服务器,以及一个可以外网访问的Blog
- 如何为安卓开发搭建一个持续集成(CI)服务器
- Android 如何搭建一个局域网 Web 服务器
- centos6.5下如何搭建一个ftp服务器和使用客户端
- 如何使用自己电脑搭建一个外网可以访问的服务器
- 【WEB开发技术】一个简单的WEB项目验证码校验(如何从前端到后台一步一步的搭建、配置、发布整个Web项目?)
- 搭建自己的NuGet服务器,上传自定义NuGet包
- Linux中如何搭建一个ftp服务服务器-超详细
- 个人用户如何搭建一个全面的WEB服务器(中)
- 如何在linux上搭建FTP服务器以及在windows上访问
- 关于如何在服务器上搭建tomcat并发布自己的web项目
- 如何搭建一个GitHub在自己的服务器上?
- Linux中如何搭建一个ftp服务服务器-超详细
- win7+iss7的配置,以及如何在本地IIS服务器挂载一个网站