¿Cómo instalo un archivo .nupkg del paquete NuGet localmente?

Respuestas:

465

Herramientas del menú → OpcionesAdministrador de paquetes

Ingrese la descripción de la imagen aquí

Dé un nombre y una ubicación de carpeta. Haga clic en Aceptar. Suelta los archivos del paquete NuGet en esa carpeta.

Vaya a su proyecto, haga clic con el botón derecho y seleccione "Administrar paquetes NuGet" y seleccione la fuente de su nuevo paquete.

Ingrese la descripción de la imagen aquí

Aquí está la documentación .

Shyju
fuente
22
En realidad, he hecho el paso 1 varias veces. Pero mi paquete no aparece en el paso 2, cuando abro para ver los paquetes instalados, las actualizaciones o los paquetes recientes.
Tom
2
En mi pantalla, solo tengo "Todos" en "Paquetes instalados", no la "Fuente de paquete oficial NuGet", no mi "newNuget" personalizado, faltan.
Tom
1
Estoy usando vs2010. Intentando descargar e instalar el último nuget desde su página de inicio en este momento. Descargue, haga clic en siguiente, luego ... luego, error ... M $ como se esperaba, hay un enlace de problemas conocidos, lo verifiqué, dice que la firma no coincide y luego necesito desinstalar el nuget existente y es una solución fácil. bien, haz eso. Cuando reinicio la computadora y la instalo nuevamente, aparece el mismo error, la falta de coincidencia de firma ... así que ahora estoy atascado con la versión anterior desaparecida, la nueva versión no quiere instalar.
Tom
2
Problema fijo. Desinstalé nuget de windows -> panel de control. No funcionó de esa manera. Necesitaba iniciar VS e ir a Herramientas-> Administrador de extensiones ... luego presionar desinstalar nuget desde allí. Reiniciado VS. Luego fue a instalar nuget nuevamente, funcionó. Ahora, los archivos nupkg locales también se muestran (edición: están en la pestaña En línea, no en la pestaña Instalado, mi error en la imagen que publico). Gracias por la ayuda :)
Tom
1
Todavía no tengo suficiente reputación para comentar, pero para responder a Michael en la respuesta aceptada, los comentarios sobre VS2015 todavía quieren conectarse. Tuve el mismo problema, pero en las opciones, si desmarca todas las fuentes en línea, funciona para las fuera de línea. nuget Options pic
Mick m
302

También puede usar la consola de Package Manager e invocar el Install-Packagecmdlet especificando la ruta al directorio que contiene el archivo del paquete en el -Sourceparámetro:

Install-Package SomePackage -Source C:\PathToThePackageDir\
Enrico Campidoglio
fuente
2
¿Puedo hacer algo así con la herramienta de línea de comando también?
Poul K. Sørensen
55
Si. La -Sourceopción también está disponible en nuget.exe . Por ejemplo:nuget install SomePackage -Source C:\PathToThePackageDir
Enrico Campidoglio
16
Es posible que también deba especificar el indicador -IncludePrerelease. De lo contrario, si la versión del paquete tiene un sufijo de guión (por ejemplo, "-beta1"), Install-Package no lo encontrará.
Jeff Sharp
99
Esta es una respuesta mucho más directa que la aceptada. Gracias por la info!
David Peters
2
No funciona para VS 2017, ver f.ex. respuesta por @Granger.
RenniePet
124

Para los archivos .nupkg que me gusta usar:

Install-Package C:\Path\To\Some\File.nupkg
Felix Alcala
fuente
77
Lo único que funcionó. Si la ruta al directorio contiene espacios, inclúyalo entre comillas dobles.
Nikos
44
De acuerdo. Y vale la pena mencionar que sólo el trabajo absoluta caminos
Sebastián J.
55
No funciona para VS 2017, ver f.ex. respuesta por @Granger.
RenniePet
1
@ RenniePet que funcionó para mí en VS2017 (pero ya había colocado mi .nupkgen el mismo directorio que todos los demás paquetes fueron almacenados)
Rafalon
1
No me funciona, estoy usando VS2013 Versión 12.0.21..5 y Nuget package manager 2.12.0.817 :(
Niraj Trivedi
56

Para Visual Studio 2017 y su nuevo formato .csproj

Ya no puede simplemente usar Install-Package para apuntar a un archivo local. (Eso es probable porque el PackageReferenceelemento no admite rutas de archivo; solo le permite especificar el Id. Del paquete).

Primero tiene que decirle a Visual Studio sobre la ubicación de su paquete, y luego puede agregarlo a un proyecto. Lo que la mayoría de la gente hace es ir al Administrador de paquetes NuGet y agregar la carpeta local como fuente (menú HerramientasOpcionesAdministrador de paquetes NuGetFuentes de paquetes ). Pero eso significa que la ubicación de su dependencia no está comprometida (con el control de versiones) con el resto de su base de código.

Paquetes NuGet locales utilizando una ruta relativa

Esto agregará un origen de paquete que solo se aplica a una solución específica, y puede usar rutas relativas.

Necesita crear un nuget.configarchivo en el mismo directorio que su .slnarchivo. Configure el archivo con las fuentes del paquete que desee. La próxima vez que abra la solución en Visual Studio 2017, todos los archivos .nupkg de esas carpetas de origen estarán disponibles. (Verá las fuentes enumeradas en el Administrador de paquetes, y encontrará los paquetes en la pestaña "Examinar" cuando administre paquetes para un proyecto).

Aquí hay un ejemplo nuget.configpara comenzar:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <packageSources>
        <add key="MyLocalSharedSource" value="..\..\..\some\folder" />
    </packageSources>
</configuration>

Trasfondo

Mi caso de uso para esta funcionalidad es que tengo varias instancias de un único repositorio de código en mi máquina. Hay una biblioteca compartida dentro de la base de código que se publica / implementa como un archivo .nupkg. Este enfoque permite que las diversas soluciones dependientes en nuestra base de código usen el paquete dentro de la misma instancia de repositorio. Además, alguien con una nueva instalación de Visual Studio 2017 puede simplemente retirar el código donde quiera, y las soluciones dependientes se restaurarán y construirán con éxito.

Granjero
fuente
Estoy usando VS 2017 y no me he encontrado con este problema. Acabo de pasar el -Sourceargumento Update-Packagey funcionó bien. Tal vez algo que ver específicamente con el Install-Packagecomando?
Greg Burghardt
48
  1. Agregue los archivos a una carpeta llamada LocalPackages junto a su solución (no tiene que llamarse así, pero ajuste el xml en el siguiente paso en consecuencia)
  2. Cree un archivo llamado NuGet.config junto a su archivo de solución con el siguiente contenido

    <?xml version="1.0" encoding="utf-8"?>
      <configuration>
        <packageSources>
          <add key="LocalPackages" value="./LocalPackages" />
        </packageSources>
        <activePackageSource>
          <!-- this tells that all of them are active -->
          <add key="All" value="(Aggregate source)" />
        </activePackageSource>
     </configuration>
  3. Si la solución está abierta en Visual Studio, ciérrela y vuelva a abrirla.

Ahora sus paquetes deberían aparecer en el navegador o ser instalables usando Install-Package

Samuel Jack
fuente
Fantástica respuesta, exactamente la solución que estaba buscando. ¡Gracias!
Jonathan
1
Esto puede ser solo porque tengo un paquete con el mismo nombre que uno en el repositorio de Nuget, pero necesitaba usar la Consola del Administrador de paquetes y seleccionar la fuente del paquete como LocalPackages antes de ejecutar Install-Package.
Lucas
42

Si tiene un archivo .nupkg y solo necesita el archivo .dll, todo lo que tiene que hacer es cambiar la extensión a .zip y buscar el directorio lib.

Marlon Cristian
fuente
3
si lo trata como un archivo zip, los archivos que tengan espacio en el nombre del archivo se extraerán con% (reemplazando los espacios). Para evitar esta instalación, use NuGet.
Rahatur
2
En realidad, ni siquiera necesita cambiar el nombre de la extensión. Simplemente haga clic con el botón derecho en el archivo, y luego elija Abrir con, y encuentre una aplicación que pueda abrir el archivo .zip, y el archivo .nupkg se puede abrir, y luego puede extraer el archivo dll necesario a su carpeta designada.
jyao
1
La mejor solución que necesito
Leo Nguyen
8

Solo para dar una actualización, hay cambios menores para los usuarios de Visual Studio 2015.

Para usar o instalar el paquete manualmente, vaya a Herramientas -> Opciones -> Administrador de paquetes NuGet -> Fuentes de paquetes

Haga clic en el botón Agregar, elija la Fuente y no olvide hacer clic en " Actualizar ", ya que actualizará la ubicación de la carpeta de sus paquetes, edite el Nombre deseado de la fuente de su paquete si lo desea:

ingrese la descripción de la imagen aquí

Para elegir su paquete agregado, haga clic con el botón derecho en su solución y seleccione " Administrar paquetes Nuget "

La lista desplegable está a la derecha y elige Examinar para explorar los paquetes que especificaste en el origen de tu carpeta. Si no hay un paquete nuget en el origen de esa carpeta, estará vacío:

ingrese la descripción de la imagen aquí

Willy David Jr
fuente
6

En Linux, con NuGet CLI, los comandos son similares. Para instalar my.nupkg, ejecute

nuget add -Source some/directory my.nupkg

Luego corre dotnet restoredesde ese directorio

dotnet restore --source some/directory Project.sln

o agregue ese directorio como fuente NuGet

nuget sources Add -Name MySource -Source some/directory

y luego decirle msbuildque use ese directorio con /p:RestoreAdditionalSources=MySourceo /p:RestoreSources=MySource. El segundo interruptor deshabilitará todas las otras fuentes, lo cual es bueno para escenarios fuera de línea, por ejemplo.

user7610
fuente
1
En mac (supongo que Linux también), no puede confiar nuget sourcessi está usando dotnet restore(o VS Mac ) debido a este error. Tuve que agregar la fuente local al ~/.nuget/NuGet/NuGet.Configmanual (ver este problema de GH ).
gabe