valida - La restauración del paquete NuGet no funciona en el servidor de compilación
restore nuget packages visual studio 2017 console (9)
-Vaya a Herramientas -> Administrador de paquetes de la biblioteca -> "Restaurar paquete" -> desmarque "Permitir que NuGet descargue paquetes faltantes" y "Verificar automáticamente ..."
Solución de reconstrucción
Solución limpia
Ahora marque "Permitir que NuGet descargue paquetes faltantes" y "Comprobar automáticamente ..."
Solución de reconstrucción
He configurado NuGet Package Restore en mi solución y funciona bien en mi máquina local. Seguí las instrucciones proporcionadas aquí:
http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages
El problema que tengo está en mi servidor de compilación donde ocurre el siguiente error:
La restauración del paquete está deshabilitada por defecto. Para dar su consentimiento, abra el cuadro de diálogo Opciones de Visual Studio, haga clic en el nodo Administrador de paquetes y marque ''Permitir que NuGet descargue paquetes faltantes durante la compilación''. También puede dar su consentimiento configurando la variable de entorno ''EnableNuGetPackageRestore'' en ''true''.
Desafortunadamente, no tengo acceso al servidor de compilación, ya que se controla fuera del sitio, por lo que no puedo actualizar la variable de entorno. ¿Hay alguna otra manera de evitar esto? ¿Puedo agregar algo al archivo de la solución o algo similar que permita la restauración del paquete?
Ejecute este comando para arreglar el paquete de activación de NuGet
Install-NuGetEnablePackageRestoreFix
Luego, a continuación, ejecute el comando Habilitar
Install-Package NuGetEnablePackageRestore
En% appdata% / NuGet / NuGet.Config agregue la siguiente sección dentro
<packageRestore>
<!-- Package Restore and MSBuild-Integrated Package Restore -->
<add key="enabled" value="True" />
<!-- Automatic Package Restore in Visual Studio -->
<add key="automatic" value="True" />
</packageRestore>
Ejemplo completo
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<activePackageSource>
<add key="nuget.org" value="https://www.nuget.org/api/v2/" />
</activePackageSource>
<packageRestore>
<!-- Package Restore and MSBuild-Integrated Package Restore -->
<add key="enabled" value="True" />
<!-- Automatic Package Restore in Visual Studio -->
<add key="automatic" value="True" />
</packageRestore>
</configuration>
Encontré este problema cuando intenté compilar uno de mis proyectos con Jenkins y logré que funcionara simplemente cambiando un valor en el archivo .nuget/NuGet.targets
de true
a false
.
Cambié:
<!-- Determines if package restore consent is required to restore packages -->
<RequireRestoreConsent Condition=" ''$(RequireRestoreConsent)'' != ''false'' ">true</RequireRestoreConsent>
a
<!-- Determines if package restore consent is required to restore packages -->
<RequireRestoreConsent Condition=" ''$(RequireRestoreConsent)'' != ''false'' ">false</RequireRestoreConsent>
Observe que el valor del elemento ha cambiado. Espero que esto ayude.
Install-Package NuGetEnablePackageRestore
NuGet puede usar la configuración local para su comportamiento, que puede ser impredecible si no está 100% seguro de cómo está configurado el servidor.
Prefiero poner la configuración de NuGet dentro del <sln root>/.nuget/NuGet.targets
que está controlado por versión y en una única ubicación. Conseguí esto trabajando con 3 ediciones rápidas en <sln root>/.nuget/NuGet.targets
, deberían verse como se muestra a continuación después de editar:
Cambio 1 :
<!-- Enable the restore command to run before builds -->
<RestorePackages Condition=" ''$(RestorePackages)'' == '''' ">true</RestorePackages>
Cambio 2 :
<!-- Determines if package restore consent is required to restore packages -->
<RequireRestoreConsent Condition=" ''$(RequireRestoreConsent)'' != ''false'' ">false</RequireRestoreConsent>
Mi comentario: la lógica torpe pero pensar en " requiere un consentimiento no igual a falso debe ser verdadero " (original) ya que " requiere un consentimiento igual a verdadero debe ser verdadero " (traducido) y tiene sentido cambiar la última parte a " falso " ( la edición)
Cambio 3 : También agregué / descomenté la etiqueta <PackageSource ... >
para eliminar cualquier dependencia en el
<ItemGroup Condition=" ''$(PackageSources)'' == '''' ">
<PackageSource Include="https://nuget.org/api/v2/" />
</ItemGroup>
Para cualquier persona que se encuentre ante esta pregunta, buscando una forma de restaurar los paquetes en un servidor de compilación, NuGet Package Restore ofrece una buena descripción de las opciones actuales.
Elegí usar el método de restauración de paquete de línea de comandos . Es tan fácil como emitir la siguiente línea de comando:
C:><path to nuget.exe> restore <path to solution.sln>
nuget.exe se puede obtener de https://docs.nuget.org/consume/installing-nuget . Utilicé la versión Command-Line Utility Latest 3.X.
Probablemente podría intentar establecer la propiedad RestorePackages en true en el archivo .nuget / NuGet.targets:
<RestorePackages Condition=" ''$(RestorePackages)'' == '''' ">true</RestorePackages>
Prueba este paquete:
Install-Package NuGetEnablePackageRestore