Preguntas más frecuentes de NuGetNuGet frequently-asked questions

Para conocer las preguntas más frecuentes sobre nuget.org, como aquellas relativas a las cuentas de nuget.org, vea Preguntas más frecuentes de nuget.org.For frequently-asked questions pertaining to NuGet.org, such as NuGet.org account questions, see NuGet.org frequently-asked questions.

¿Qué se necesita para ejecutar NuGet?What is required to run NuGet?

Toda la información relacionada con las herramientas de interfaz de usuario y línea de comandos está disponible en la Guía de instalación.All the information around both UI and command-line tools is available in the Install guide.

¿Admite NuGet Mono?Does NuGet support Mono?

La herramienta de línea de comandos, nuget.exe, compila y se ejecuta en Mono 3.2 y versiones posteriores, y puede crear paquetes en Mono.The command-line tool, nuget.exe, builds and runs under Mono 3.2+ and can create packages in Mono.

Aunque nuget.exe funciona completamente en Windows, existen problemas conocidos en Linux y OS X. Consulte Problemas de Mono en GitHub.Although nuget.exe works fully on Windows, there are known issues on Linux and OS X. Refer to Mono issues on GitHub.

Un cliente gráfico está disponible como complemento para MonoDevelop.A graphical client is available as an add-in for MonoDevelop.

¿Cómo puedo averiguar lo que contiene un paquete y si es estable y útil para mi aplicación?How can I determine what a package contains and whether it's stable and useful for my application?

La fuente principal para obtener información sobre un paquete es su página de listado en nuget.org (u otra fuente privada).The primary source for learning about a package is its listing page on nuget.org (or another private feed). Cada página de paquete en nuget.org incluye una descripción del paquete, su historial de versiones y estadísticas de uso.Each package page on nuget.org includes a description of the package, its version history, and usage statistics. En la sección Información de la página del paquete también se incluye un vínculo al sitio web del proyecto donde normalmente encontrará muchos ejemplos y otra documentación para ayudarle a obtener información sobre cómo se usa el paquete.The Info section on the package page also contains a link to the project's web site where you typically find many examples and other documentation to help you learn how the package is used.

Para más información, vea Búsqueda y selección de paquetes.For more information, see Finding and choosing packages.

NuGet en Visual StudioNuGet in Visual Studio

¿Cómo se admite NuGet en los diferentes productos de Visual Studio?How is NuGet supported in different Visual Studio products?

¿Cómo puedo comprobar la versión exacta de las herramientas de NuGet que están instaladas?How do I check the exact version of the NuGet tools that are installed?

En Visual Studio, use el comando Ayuda > Acerca de Microsoft Visual Studio y mire la versión que se muestra junto a Administrador de paquetes NuGet.In Visual Studio, use the Help > About Microsoft Visual Studio command and look at the version displayed next to NuGet Package Manager.

O bien, inicie la consola del Administrador de paquetes (Herramientas > Administrador de paquetes NuGet > Consola del Administrador de paquetes) y escriba $host para ver información sobre NuGet, incluida la versión.Alternatively, launch the Package Manager Console (Tools > NuGet Package Manager > Package Manager Console) and enter $host to see information about NuGet including the version.

¿Qué lenguajes de programación son compatibles con NuGet?What programming languages are supported by NuGet?

En general, NuGet funciona para lenguajes .NET y está diseñado para incluir bibliotecas .NET en un proyecto.NuGet generally works for .NET languages and is designed to bring .NET libraries into a project. Como también admite la automatización de MSBuild y Visual Studio en algunos tipos de proyecto, también admite otros proyectos y lenguajes hasta cierto punto.Because it also supports MSBuild and Visual Studio automation in some project types, it also supports other projects and languages to various degrees.

La versión más reciente de NuGet es compatible con C#, Visual Basic, F#, WiX y C++.The most recent version of NuGet supports C#, Visual Basic, F#, WiX, and C++.

¿Qué plantillas de proyecto son compatibles con NuGet?What project templates are supported by NuGet?

NuGet es totalmente compatible con una variedad de plantillas de proyecto como Windows, web, de nube, SharePoint, Wix y otras.NuGet has full support for a variety of project templates like Windows, Web, Cloud, SharePoint, Wix, and so on.

¿Cómo puedo actualizar los paquetes que forman parte de plantillas de Visual Studio?How do I update packages that are part of Visual Studio templates?

Vaya a la pestaña Actualizaciones en la interfaz de usuario del Administrador de paquetes y seleccione Actualizar todo, o use el comando Update-Package desde la consola del Administrador de paquetes.Go to the Updates tab in the Package Manager UI and select Update All, or use the Update-Package command from the Package Manager Console.

Para actualizar la plantilla propiamente dicha, debe actualizar manualmente el repositorio de plantillas.To update the template itself, you need to manually update the template repository. Vea el blog de Xavier Decoster sobre este tema.See Xavier Decoster's blog on this subject. Tenga en cuenta que esto se realiza bajo su responsabilidad, ya que es posible que las actualizaciones manuales dañen la plantilla si la versión más reciente de todas las dependencias no es compatible entre sí.Note that this is done at your own risk, because manual updates might corrupt the template if the latest version of all dependencies are not compatible with each other.

¿Puedo usar NuGet fuera de Visual Studio?Can I use NuGet outside of Visual Studio?

Sí, NuGet funciona directamente desde la línea de comandos.Yes, NuGet works directly from the command line. Vea la Guía de instalación y la Referencia de la CLI.See the Install guide and the CLI reference.

Línea de comandos de NuGetNuGet command line

¿Cómo puedo obtener la versión más reciente de la herramienta de línea de comandos de NuGet?How do I get the latest version of NuGet command line tool?

Vea la Guía de instalación.See the Install guide. Para comprobar la versión instalada actualmente de la herramienta, use nuget help.To check the current installed version of the tool, use nuget help.

¿Cuál es la licencia de nuget.exe?What is the license for nuget.exe?

Está autorizado a redistribuir nuget.exe conforme a los términos de la licencia MIT.You are allowed to redistribute nuget.exe under the terms of the MIT license. Es responsable de la actualización y el mantenimiento de las copias de nuget.exe que elija para redistribuir.You are responsible for updating and servicing any copies of nuget.exe that you choose to redistribute.

¿Es posible extender la herramienta de línea de comandos de NuGet?Is it possible to extend the NuGet command line tool?

Sí, es posible agregar comandos personalizados a nuget.exe, como se describe en la publicación de Rob Reynold.Yes, it's possible to add custom commands to nuget.exe, as described in Rob Reynold's post.

Consola del Administrador de paquetes NuGet (Visual Studio en Windows)NuGet Package Manager Console (Visual Studio on Windows)

¿Cómo puedo obtener acceso al objeto DTE en la consola del Administrador de paquetes?How do I get access to the DTE object in the Package Manager console?

El objeto de nivel superior en el modelo de objetos de automatización de Visual Studio se denomina objeto DTE (Entorno de herramientas de desarrollo).The top-level object in the Visual Studio automation object model is called the DTE (Development Tools Environment) object. La consola lo proporciona a través de una variable denominada $DTE.The console provides this through a variable named $DTE. Para más información, vea Información general del modelo de automatización en la documentación de extensibilidad de Visual Studio.For more information, see Automation Model Overview in the Visual Studio Extensibility documentation.

Intento convertir la variable $DTE al tipo DTE2, pero se muestra un error: No se puede convertir el valor "EnvDTE.DTEClass" del tipo "EnvDTE.DTEClass" al tipo "EnvDTE80.DTE2". ¿Qué ocurre?I try to cast the $DTE variable to the type DTE2, but I get an error: Cannot convert the "EnvDTE.DTEClass" value of type "EnvDTE.DTEClass" to type "EnvDTE80.DTE2". What's wrong?

Se trata de un problema conocido de cómo interactúa PowerShell con un objeto COM.This is a known issue with how PowerShell interacts with a COM object. Intente lo siguiente:Try the following:

`$dte2 = Get-Interface $dte ([EnvDTE80.DTE2])`

Get-Interface es una función del asistente agregada por el host de PowerShell de NuGet.Get-Interface is a helper function added by the NuGet PowerShell host.

Creación y publicación de paquetesCreating and publishing packages

¿Cómo puedo mostrar el paquete en una fuente?How do I list my package in a feed?

Vea Creación y publicación de un paquete.See Creating and publishing a package.

Tengo varias versiones de la biblioteca destinadas a versiones diferentes de .NET Framework. ¿Cómo genero un único paquete que admita esto?I have multiple versions of my library that target different versions of the .NET Framework. How do I build a single package that supports this?

Vea Compatibilidad con varias versiones y perfiles de .NET Framework.See Supporting Multiple .NET Framework Versions and Profiles.

¿Cómo configuro mi propio repositorio o fuente?How do I set up my own repository or feed?

Vea la Información general sobre hospedaje de paquetes.See the Hosting packages overview.

¿Cómo puedo cargar paquetes a mi fuente de NuGet de forma masiva?How can I upload packages to my NuGet feed in bulk?

Vea Publicación masiva de paquetes NuGet (jeffhandly.com).See Bulk publishing NuGet packages (jeffhandly.com).

Trabajar con paquetesWorking with packages

¿Cuál es la diferencia entre un paquete de nivel de proyecto y un paquete de nivel de solución?What is the difference between a project-level package and a solution-level package?

Un paquete de nivel de solución (NuGet 3.x y versiones posteriores) solo se instala una vez en una solución y después está disponible para todos los proyectos de la solución.A solution-level package (NuGet 3.x+) is installed only once in a solution and is then available for all projects in the solution. Un paquete de nivel de proyecto se instala en cada uno de los proyectos en los que se use.A project-level package is installed in each project that uses it. Es posible que un paquete de nivel de solución también instale comandos nuevos que se pueden llamar desde la consola del Administrador de paquetes.A solution-level package might also install new commands that can be called from within the Package Manager Console.

¿Es posible instalar paquetes NuGet sin conectividad a Internet?Is it possible to install NuGet packages without Internet connectivity?

Sí, vea la entrada de blog de Scott Hanselman How to access NuGet when nuget.org is down (or you're on a plane) [Cómo obtener acceso a NuGet cuando nuget.org está inactivo (o está en un avión)] en hanselman.com.Yes, see Scott Hanselman's Blog post How to access NuGet when nuget.org is down (or you're on a plane) (hanselman.com).

¿Cómo instalo paquetes en una ubicación distinta de la carpeta de paquetes predeterminada?How do I install packages in a different location from the default packages folder?

Establezca el valor repositoryPath de Nuget.Config mediante nuget config -set repositoryPath=<path>.Set the repositoryPath setting in Nuget.Config using nuget config -set repositoryPath=<path>.

¿Cómo puedo evitar que la carpeta de paquetes NuGet se agregue al control de código fuente?How do I avoid adding the NuGet packages folder into to source control?

Establezca disableSourceControlIntegration de Nuget.Config en true.Set the disableSourceControlIntegration in Nuget.Config to true. Esta clave funciona en el nivel de la solución y, por tanto, debe agregarse al archivo $(Solutiondir)\.nuget\Nuget.Config.This key works at the solution level and hence need to be added to the $(Solutiondir)\.nuget\Nuget.Config file. Al habilitar la restauración de paquetes desde Visual Studio, se crea automáticamente este archivo.Enabling package restore from Visual Studio creates this file automatically.

¿Cómo se desactiva la restauración de paquetes?How do I turn off package restore?

Vea Habilitar y deshabilitar la restauración de paquetes.See Enabling and disabling package restore.

¿Por qué aparece un error "No se puede resolver la dependencia" al instalar un paquete local con dependencias remotas?Why do I get an "Unable to resolve dependency error" when installing a local package with remote dependencies?

Debe seleccionar el origen Todos al instalar un paquete local en el proyecto.You need to select the All source when installing a local package into the project. Esto agrega todas las fuentes en lugar de usar solo una.This aggregates all the feeds instead of using just one. El motivo por el que se produce este error es que los usuarios de un repositorio local a menudo quieren evitar la instalación accidental de un paquete remoto debido a las directivas de la empresa.The reason this error appears is that users of a local repository often want to avoid accidentally installing a remote package due to corporate polices.

Tengo varios proyectos en la misma carpeta, ¿cómo puedo usar archivos packages.config independientes para cada proyecto?I have multiple projects in the same folder, how can I use separate packages.config files for each project?

En la mayoría de los proyectos en los que los proyectos independientes se encuentran en carpetas independientes, esto no es un problema ya que NuGet identifica los archivos packages.config de cada proyecto.In most projects where separate projects live in separate folders, this is not a problem as NuGet identifies the packages.config files in each project. Con NuGet 3.3 y versiones posteriores, y varios proyectos en la misma carpeta, puede insertar el nombre del proyecto en los nombres de archivo packages.config, usar el modelo packages.{project-name}.config y que NuGet use ese archivo.With NuGet 3.3+ and multiple projects in the same folder, you can insert the name of the project into the packages.config filenames use the pattern packages.{project-name}.config, and NuGet uses that file.

Esto no es un problema al usar PackageReference, ya que cada archivo de proyecto contiene su propia lista de dependencias.This is not an issue when using PackageReference, as each project file contains its own list of dependencies.

No veo nuget.org en mi lista de repositorios, ¿cómo lo recupero?I don't see nuget.org in my list of repositories, how do I get it back?

  • Agregue https://api.nuget.org/v3/index.json a la lista de orígenes, o bienAdd https://api.nuget.org/v3/index.json to your list of sources, or
  • Elimine %appdata%\.nuget\NuGet.Config (Windows) o ~/.nuget/NuGet/NuGet.Config (Mac/Linux) y deje que NuGet se vuelve a crear.Delete %appdata%\.nuget\NuGet.Config (Windows) or ~/.nuget/NuGet/NuGet.Config (Mac/Linux) and let NuGet re-create it.