标签:nuget 私有 NuGet 添加 Nuget 2.3 搭建
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
4. 参考文献
- what if I have duplicate nuget packages in multiple sources?
- Installing NuGet package with dependencies on multiple sources
标签:nuget,私有,NuGet,添加,Nuget,2.3,搭建 来源: https://www.cnblogs.com/rqcim/p/15923931.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。