Explicamos cómo instalar un paquete (package) del repositorio NuGet desde la propia consola de Visual Studio .Net. Como ejemplo instalaremos Telegram.Bot en Visual Studio Community 2015 .Net.

Requisitos para instalar paquetes NuGet en Visual Studio .Net

En primer lugar necesitaremos tener instalado Visual Studio .Net. En nuestro caso en su versión gratuita Community.

El requisito más importante es que tendremos que establecer un permiso especial en el equipo (en Windows) para permitir la ejecución de script. Para establecer este permiso abriremos la consola de comandos PowerShell (de Windows) como administradores. Para ello pulsaremos el botón Inicio y buscaremos PowerShell, en el enlace que aparece pulsaremos con el botón derecho y «Ejecutar como administrador»:

Requisitos para instalar paquetes NuGet en Visual Studio .Net

Ejecutando el siguiente comando obtendremos el estado actual de esta directiva de seguridad:

Get-ExecutionPolicy -List

Obtendremos algo así:

Requisitos para instalar paquetes NuGet en Visual Studio .Net

Para habilitar la directiva ejecutaremos este otro comando:

Set-ExecutionPolicy RemoteSigned

Requisitos para instalar paquetes NuGet en Visual Studio .Net

Hay que tener en cuenta que si tenemos alguna directiva de ámbito superior restringida el comando anterior fallará con este mensaje:

Set-ExecutionPolicy : Windows PowerShell actualizó la directiva de ejecución correctamente, pero el valor queda invalidado por una directiva definida en un ámbito más específico. Debido a esta invalidación, el shell mantendrá la directiva de ejecución efectiva actual: Restricted. Escriba «Get-ExecutionPolicy -List» para ver la configuración de la directiva de ejecución. Para obtener más información, vea «Get-Help Set-ExecutionPolicy».
En línea: 1 Carácter: 1
Set-ExecutionPolicy RemoteSigned
CategoryInfo : PermissionDenied: (:) [Set-ExecutionPolicy], SecurityException
FullyQualifiedErrorId : ExecutionPolicyOverride,Microsoft.PowerShell.Commands.SetExecutionPolicyCommand

Esto puede ser debido a que tengamos alguna directiva de nivel superior que impida la ejecución del comando. Por ejemplo cuando tenemos el equipo agregado a un dominio y hay una directiva de dominio, que tiene prioridad sobre la del equipo. En estos casos habrá que modificar la directiva del dominio que se esté aplicando al equipo.

Con el comando siguiente podremos ver las directivas de grupo aplicadas en un equipo:

gpresult /v

Para modificar la directiva del dominio que se esté aplicando al equipo, si tenemos privilegios suficientes, accederemos al controlador de dominio, abriremos el Editor de administración de directivas de grupo y accederemos al árbol de la izquierda. Desplegaremos «Configuración del equipo» – «Directivas» (esta clave a veces no aparece) – «Plantillas administrativas» – «Componentes de Windows» – «Windows PowerShell». En la parte derecha nos saldrán las directivas para esta clave, pulsaremos con doble clic sobre «Activar la ejecución de scripts»:

Requisitos para instalar paquetes NuGet en Visual Studio .Net

Marcaremos «Habilitada» y elegiremos del desplegable el tipo de scripts que permitiremos (Permitir solo los scripts firmados, Permitir scripts locales y scripts remotos firmados o bien Permitir todos los scripts):

Requisitos para instalar paquetes NuGet en Visual Studio .Net

Pulsaremos «Aceptar» para aplicar esta directiva. De forma que en MachinePolicy quede «Unrestricted», de lo contrario el comando no nos funcionará:

Requisitos para instalar paquetes NuGet en Visual Studio .Net

IMPORTANTE: si aplicamos la directiva a nivel de dominio hay que extremar las precauciones para no aplicarla a todos los equipos. La ejecución de scripts está desactivada por defeco, por seguridad, con esta directiva la activaremos, por lo que es peligrosa.

En el caso en el que no hayamos establecido el permiso, cuando intentemos abrir la consola de Package Manager Consol desde Visual Studio nos mostrará el siguiente error:

File C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO 14.0\COMMON7\IDE\EXTENSIONS\MCZ10TT3.BME\Modules\NuGet\profile.ps1 cannot be loaded because running scripts is disabled on this system. For more information, see about_Execution_Policies at https:/go.microsoft.com/fwlink/?LinkID=135170.

Instalar paquete NuGet desde Visual Studio .Net con Package Manager Console

Desde nuestro proyecto Visual Studio .Net pulsaremos en el menú «Tools» – «NuGet Package Manager» – «Package Manager Console»:

Instalar paquete NuGet desde Visual Studio .Net con Package Manager Console

En la parte inferior nos mostrará una consola con este texto:

Each package is licensed to you by its owner. NuGet is not responsible for, nor does it grant any licenses to, third-party packages. Some packages may include dependencies which are governed by additional licenses. Follow the package source (feed) URL to determine any dependencies.
Package Manager Console Host Version 3.4.4.1321
Type ‘get-help NuGet’ to see all available NuGet commands.
PM>

Ahora podremos instalar paquetes NuGet. Como ejemplo instalaremos Telegram.Bot, para ello escribiremos el siguiente comando en la consola:

Install-Package Telegram.Bot -Version 14.10.0

Realizará la descarga e instalación del paquete, mostrando el resultado por la consola:

PM> Install-Package Telegram.Bot -Version 14.10.0
Attempting to gather dependency information for package ‘Telegram.Bot.14.10.0’ with respect to project ‘BotTelegram’, targeting ‘.NETFramework,Version=v4.5.2’
Attempting to resolve dependencies for package ‘Telegram.Bot.14.10.0’ with DependencyBehavior ‘Lowest’
Resolving actions to install package ‘Telegram.Bot.14.10.0’
Resolved actions to install package ‘Telegram.Bot.14.10.0’
GET https://api.nuget.org/v3-flatcontainer/newtonsoft.json/11.0.2/newtonsoft.json.11.0.2.nupkg
OK https://api.nuget.org/v3-flatcontainer/newtonsoft.json/11.0.2/newtonsoft.json.11.0.2.nupkg 134ms
Installing Newtonsoft.Json 11.0.2.
Adding package ‘Newtonsoft.Json.11.0.2’ to folder ‘C:\Users\52815331V.NEWTON\documents\visual studio 2015\Projects\BotTelegram\packages’
Added package ‘Newtonsoft.Json.11.0.2’ to folder ‘C:\Users\52815331V.NEWTON\documents\visual studio 2015\Projects\BotTelegram\packages’
Added package ‘Newtonsoft.Json.11.0.2’ to ‘packages.config’
Successfully installed ‘Newtonsoft.Json 11.0.2’ to BotTelegram
GET https://api.nuget.org/v3-flatcontainer/system.net.requests/4.3.0/system.net.requests.4.3.0.nupkg
OK https://api.nuget.org/v3-flatcontainer/system.net.requests/4.3.0/system.net.requests.4.3.0.nupkg 494ms
Installing System.Net.Requests 4.3.0.
Adding package ‘System.Net.Requests.4.3.0’ to folder ‘C:\Users\52815331V.NEWTON\documents\visual studio 2015\Projects\BotTelegram\packages’
Added package ‘System.Net.Requests.4.3.0’ to folder ‘C:\Users\52815331V.NEWTON\documents\visual studio 2015\Projects\BotTelegram\packages’
Added package ‘System.Net.Requests.4.3.0’ to ‘packages.config’
Successfully installed ‘System.Net.Requests 4.3.0’ to BotTelegram
GET https://api.nuget.org/v3-flatcontainer/telegram.bot/14.10.0/telegram.bot.14.10.0.nupkg
OK https://api.nuget.org/v3-flatcontainer/telegram.bot/14.10.0/telegram.bot.14.10.0.nupkg 137ms
Installing Telegram.Bot 14.10.0.
Adding package ‘Telegram.Bot.14.10.0’ to folder ‘C:\Users\52815331V.NEWTON\documents\visual studio 2015\Projects\BotTelegram\packages’
Added package ‘Telegram.Bot.14.10.0’ to folder ‘C:\Users\52815331V.NEWTON\documents\visual studio 2015\Projects\BotTelegram\packages’
Added package ‘Telegram.Bot.14.10.0’ to ‘packages.config’
Successfully installed ‘Telegram.Bot 14.10.0’ to BotTelegram
PM>

Anexo

  • Texto explicativo para la directiva «Activar la ejecución de scripts»:

Esta configuración de directiva permite configurar la directiva de ejecución de scripts, que controla los scripts con permiso para ejecutarse.

Si habilita esta configuración de directiva, los scripts seleccionados en la lista desplegable tienen permiso para ejecutarse.

La configuración de directiva «Permitir solo scripts firmados» permite que se ejecuten solo los scripts que estén firmados por un anunciante de confianza.

La configuración de directiva «Permitir scripts locales y scripts remotos firmados» permite la ejecución de cualquier script local; los scripts que provienen de Internet deben estar firmados por un anunciante de confianza.

La opción «Permitir todos los scripts» permite ejecutar todos los scripts.

Si deshabilita esta configuración de directiva, no se permitirá la ejecución de ningún script.

Nota: esta configuración de directiva se encuentra en «Configuración del equipo» y «Configuración del usuario» en el Anunciante de directivas de grupo local. La «Configuración del equipo» tiene prioridad sobre la «Configuración del usuario».

Si se deshabilita o no se establece esta configuración de directiva, se revierte a una configuración de preferencia por equipo; el valor predeterminado, si no está configurada, es no permitir ningún script.