Solución:
Simplemente pasé por el dolor de esto y quería encontrar una solución usando solo la CLI de NuGet. Resulta que en realidad es bastante simple:
> nuget.exe install <PACKAGENAME> -OutputDirectory <OUTPUTDIR>
La clave es la -OutputDirectory
switch que hace que la CLI instale el paquete especificado en un directorio que no tiene un archivo de proyecto. La ejecución de este comando descargará el paquete y todas sus dependencias en el directorio de salida, y cada paquete se colocará en una subcarpeta separada. A continuación, puede tomar todos los .nupkg
desde el directorio de salida y haga lo que tenga que hacer con ellos.
Actualizar: Como señala Igand en los comentarios, el -OutputDirectory
En realidad, no se requiere un interruptor. Si se omite, nuget.exe simplemente se descargará en la carpeta actual. Aún así, es mejor no descargarlo en una carpeta con un archivo de proyecto (a menos que eso sea lo que está buscando).
Tenía una necesidad similar, así que creé NuSave.
Almacene en caché un solo paquete NuGet con dependencias
nusave cache package "[email protected]" --targetFrameworks "[email protected],[email protected]" --cacheDir "C:pathtomy-local-feed"
Almacene en caché varios paquetes NuGet de un .csproj
expediente
nusave cache csproj "C:pathtoproject.csproj" --cacheDir "C:pathtomy-local-feed"
Almacene en caché varios paquetes NuGet desde un .sln
expediente
nusave cache sln "C:pathtosolution.sln" --cacheDir "C:pathtomy-local-feed"
Restaurar y crear una solución sin conexión usando mi caché local
cd C:pathtomy-solution
dotnet restore --packages C:pathtomy-local-feed
dotnet build --no-restore
En la computadora con acceso a Internet, los paquetes NuGet (.nupkg) deben estar en la caché de la máquina local. En Windows, se encuentra en un directorio similar a:
C:UsersYourUsernameAppDataLocalNuGetCache
Por lo tanto, debería poder copiar los archivos .nupkg desde allí a la computadora sin acceso a Internet. Crearía un directorio en esa computadora y configuraría una nueva fuente de paquete apuntando a ese directorio. Alternativamente, puede copiar los archivos .nupkg al caché de la máquina local, solo tenga en cuenta que hay un límite de 200 paquetes NuGet en el caché. Luego, puede crear una fuente de paquete que apunte a la caché.