2012-08-07 27 views
5

Así, después de haber habilitado paquete de restaurar en mis soluciones - Instalar Paquete NuGetEnablePackageRestoreTFS NuGet trucos que no conozco?

He instalado y actualizado sobre la NuGet TFS Creación del Servidor

He creado la variable de entorno en el TFS Build Servidor - http://www.centrolutions.com/blog/post/2012/07/05/NuGet-and-TFS-2010-Automated-Build.aspx

He eliminado todos mis archivos packages.config y comencé de nuevo en cada proyecto.

He añadido la ruta de la carpeta .nuget a la preparación del trabajo, junto con un agente definido Construir carpeta

Casi he terminado mi soga y el plan de ahorcarme en la madrugada ... ¿hay algo que ¿Me falta?

se olvidó de poner TFS sobre errores de compilación

C: \ Builds \ 10 \ ....... Nuget nuget.targets (76): Paquete de restauración está desactivado 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 los paquetes faltantes durante la compilación'. También puede dar su consentimiento estableciendo la variable de entorno 'EnableNuGetPackageRestore' en 'true'.

y

C: \ construye \ 10 ....... Nuget \ nuget.targets (76): El comando "" C: \ Construye \ 10 ....... Nuget \ nuget.exe "instalar" C: \ Builds \ 10 ...... \ packages.config "-source" "-o" C: \ Builds \ 10 ...... \ packages "" salido con código - 1.

Se eliminó el camino completo para la seguridad.

DISCOVERY:

Mi administrador de TFS configurar la variable de entorno como variable de usuario! Pensé que le pediría que me mostrara exactamente cómo lo configuró y, tan pronto como lo hizo, me di cuenta de que estaba mal.

Ya no obtengo el error de restauración del paquete ... ¡wooo! Sin embargo, recibo errores de "No se puede encontrar la versión", lo que me hace pensar que el recuadro TFS no conoce las fuentes adecuadas del paquete. Comprobé que se puede acceder al origen del paquete desde el recuadro de creación de TFS, también configuré NuGet en ese recuadro para hacer referencia a los recursos compartidos del paquete.

¿Es posible hacer esto sin un servidor de paquetes? He estado utilizando archivos compartidos para todas mis compilaciones locales, pero me pregunto si las reglas cambian cuando llega al recuadro TFS. ¿Debo definir mis fuentes de paquete en el archivo Nuget.config?

+1

¿Cuál es el problema? ¿Algún mensaje de error? –

Respuesta

2

El problema terminó siendo que el administrador de TFS usó una "variable de usuario" para la variable de entorno EnableNuGetPackageRestore. Nunca lo hubiera adivinado la derecha del palo :(.

fui y la vi configurarlo de nuevo, y se dio cuenta de que estaba mal ... tenía su corregirlo, y ahora funciona bien.

Gracias por todos los consejos!

+2

y el controlador/servicio de compilación TFS e/agent debe reiniciarse, a menos que el servidor haya sido reiniciado. – talisker

2

Comenzando con NuGet 2.0, necesita dar su consentimiento a NuGet para descargar paquetes durante la compilación (preocupación por la privacidad). Más información aquí: http://blog.nuget.org/20120518/package-restore-and-consent.html

La opción de dar consentimiento en la interfaz de usuario se ha agregado con NuGet Package Manager 1.8. Es el tercer elemento en Herramientas-> Opciones-> Administrador de paquetes-> General: "Restaurar paquete: Permitir que NuGet descargue los paquetes que faltan durante la compilación".

Como alternativa, puede dar su consentimiento estableciendo la variable de entorno EnableNuGetPackageRestore en true.

+0

Gracias por la sugerencia, pero como dije en mi publicación, he creado la variable de entorno. Además, no puedo imaginar que lo haría tiene que abrir cada solución en el servidor de compilación y volver a habilitar la restauración del paquete. Se supone que el servidor de compilación es un sistema sin cabeza que necesita una interacción mínima. – farina

1

Si el paquete permitido restaurar, a continuación, se pueden configurar las fuentes de paquetes utilizando los <PackageSources> elemento en los NuGet.targets usted presenta encontrará en el $ (SolutionDir) .nuget carpeta.

¿Puedes verificar estos puntos en la ubicación correcta y si se puede acceder a esa ruta desde el servidor de compilación?