一、背景
在日常 .NET / C# 开发中,使用 NuGet 包管理器 是最常见的依赖管理方式。
然而,很多公司的电脑处于 内网隔离环境,无法直接访问 NuGet 官方源。这时如果项目依赖第三方包,就会遇到无法直接在线安装的问题。
比如:
- 想引用
Newtonsoft.Json
包,却因为电脑不连外网而失败; - 想升级某个 NuGet 包的版本,但内网机器无法获取更新;
- 项目编译总是报错“缺少某某引用”。
面对这种情况,我们就需要研究 NuGet 包的离线安装方法。
二、原理分析
NuGet 的本质就是一个 包管理系统:
- 在线安装时,VS 或
nuget.exe
会从远程源下载.nupkg
文件; - 然后把里面的 DLL 文件引用到项目中,同时在项目文件里记录依赖关系。
换句话说:NuGet 包的最终效果就是把 DLL 引入到项目里。
因此,即便内网机器不能联