一、前言
有些nuget包有着乱七八糟的依赖项,在离线安装的时候用.nupkg有时会出问题。本文使用nuget.exe来下载NuGet连同依赖项,u盘拷贝到离线环境安装后即可使用。
本文以离线安装Costura.Fody为例,它是相当通用的NuGet扩展,用于将C#项目打包成单独的可执行文件。
二、安装过程
1.下载nuget.exe
打开NuGet官网,找到下载页面:NuGet Gallery | Downloads
左侧下载最新版exe,放到随便一个文件夹(我放的桌面)。
2.命令行进入nuget.exe所在文件夹
输入nuget,弹出命令行提示则成功。
3、下载离线包
下载Costura.Fody的离线包命令如下(其他包也是一样的格式):
nuget install Costura.Fody -SolutionDirectory C:\Users\RyohgiS\Desktop -PackageSaveMode nupkg
可以更改包名和路径名以下载自己想要的包在指定的路径。程序会在路径下新建一个packages文件夹来存放离线包。
安装完毕后,打开packages文件夹,发现已经有了一大堆东西,这都是Costura.Fody和其依赖项,可能有用不上的,但一定不会少。
4.安装
U盘拷贝packages文件夹到离线环境,记住路径,打开VS进入项目,点击上方导航条中的工具->NuGet包管理器->程序包管理器设置。
在出来的二级菜单的左侧找到程序包源,点击右上绿色加号,添加packages文件夹到你的VS包源中,该目录将会一直作为你的VS包源,之后的离线包都可以放在之前的packages文件夹以免重复操作。
然后进入到项目依赖项,管理NuGet程序包,离线环境下默认什么都不显示。右上角更改程序包源至PacKage Source(上一步默认的名字,可自行修改)。
可以看到我们之前下载的Costura.Fody和乱七八糟的依赖项,如果不显示可以点上面“已安装”再点回“浏览”刷新一下列表。
像有网络时一样点击安装即可。
三、疑难问题
1.控制台显示“正在尝试收集XXX的项目......”
卡住不动,很明显VS还在联网搜索包。这时候在程序包源右边的设置中把nuget.org去掉再重新安装即可。