NuGet 私有库服务搭建
1. 本文概述
NuGet 服务可以的方便管理 C# 程序依赖包,项目代码存储到 Github 平台的时候不用上传庞大的 dll 文件。企业内部使用的话,往往有些私有的包不希望扩散到外网环境中。这时可以通过 Nuget.Server 快速搭建私有 Nuget 包管理平台。
2. 私有 NuGet 服务器使用说用
2.1 搭建私有 Nuget.Server 服务
在 Visual Studio 中创建空的 ASP.NET Web 解决方案:
添加 Nuget.Server 引用:
添加密钥,用于发布和删除包:
发布部署网站,打开页面,如下所示部署成功!
2.2 Visual Studio 引用私有库
在 Visual Studio 工具→选项→NuGet包管理器 中添加私有源。私有源的名称随意填写:
添加完成,在Nuget管理界面可以切换到私有源中查看所有的包:
私有用中的包安装和卸载与 Nuget 中的方式一致。
2.3 Nuget 私有库管理
可以在微软应用商店(Microsoft Store)中下载 NuGet 包浏览器:NuGet Package Explorer
其他安装途径可以在 NuGet Package Explorer 官方网站中查看。地址如下:
地址: https://github.com/NuGetPackageExplorer/NuGetPackageExplorer
2.3.1 查看包
可以在 NuGet Package Explorer 右上角输入 NuGet 私有库地址,查看私有库中的包信息。也可以查看 NuGet 官方库中的包:
2.3.2 发布包
打开 Nuget 包浏览器,按照以下步骤创建一个新的包:
编辑包信息,添加 DLL 文件:
可以添加 Nuget 库其他引用包:(这里可以添加公有库和私有库中的引用包)
编辑完成后,在 File → Publish 中发布包:
需要输入秘钥才能发布:
2.3.3 更新包
对已发布的包,可以重新获取并编辑基础信息和 dll 文件,更新版本号,重新发布。可以在 NuGet Package Explorer 中查询历史版本。
2.3.4 删除包
NuGet Package Explorer 没有提供直接删除包的功能,这里可以使用 nuget 命令行工具进行删除。
首先,要在 Nuget 官方网站下载 Nuget.exe 可执行文件:https://www.nuget.org/downloads
下载的 Nuget.exe 放到D盘根目录,按以下操作流程删除包:
比如,这里要删除 EntityFramework 包:
命令行中执行以下删除语句:
nuget.exe delete EntityFramework 6.3.0-preview6-19304-03 -Source http://renqiancheng.com:1000/nuget
3. 常见问题说明
3.1 当私有库与 NuGet 公共库中的包重复时,VS 如何处理?
在最新版的 NuGet 3 中,所有的 NuGet 源没有优先级顺序,默认从速度最快的源进行下载。所以,不相同的包务必保证名称或版本号的差异。
3.2 如果在项目中保存私有库地址,方便团队成员使用?
可以在项目中添加 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="Private Nuget" value="http://privatefeed.com/nuget" />
</packageSources>
</configuration>
安装引用的时候也可以指定具体的源:
nuget install Pack1 -Source https://api.nuget.org/v3/index.json -Source http://privatefeed.com/nuget