2012-02-14 16 views
7

He habilitado la opción Restaurar paquete en mi solución, así que cuando subo el código al servidor de CI, actualiza todos los paquetes que necesita para compilar correctamente y funciona muy bien. Ahora el problema es que en mi máquina local, la construcción tarda mucho tiempo en comenzar porque está "actualizando los paquetes". ¿Hay alguna manera de habilitar el paquete de restauración solo en la versión de lanzamiento?Prevenir NuGet Restore Package en compilaciones de depuración solo

he tratado de mover la propiedad <RestorePackage> en los archivos Csproj a las secciones de liberación/depuración con false y true, pero NuGet actualiza el atributo cuando una abierta la consola NuGet y restablece tanto a true; también intenté incluir solo la propiedad en la sección de publicación, pero luego NuGet la agregó a la sección global ... así que no tuve suerte haciendo que se mantuviera como quería ...

¿Algún consejo?

Respuesta

15

Probablemente han logrado responder a esta por ahora, pero si no, entonces estos son los pasos que debe seguir

Justo donde el archivo de la solución está dentro de Windows debe haber una carpeta llamada .nuget. Cambie el nombre o elimine esta carpeta.

Ahora abrir cada .csproj o .vbproj archivo en el bloc de notas o cualquier editor de texto y elimine estas líneas

<RestorePackages>true</RestorePackages> 
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" /> 

La parte importante es la extracción/cambiar el nombre de la carpeta .nuget. Esto debería ahora deshabilitar completamente la restauración del paquete.

Editar: Para restaurar paquete para desactivar selectivamente versiones de depuración editar el archivo Nuget.settings.targets y modificar la siguiente línea

<RestorePackages Condition="$(RestorePackages) == ''">false</RestorePackages> 

Para

<RestorePackages Condition="$(RestorePackages) == '' AND '$(Configuration)' == 'Debug'">false</RestorePackages> 

El archivo es Nuget.settings.targets debajo de la carpeta .nuget que debe estar en la misma carpeta que su archivo de solución.

+0

Bueno, no quiero eliminar Package Restore por completo, solo quiero deshabilitarlo para compilaciones de depuración .... No quiero que se ejecute cuando estoy en mi computadora local/dev, pero quiero que busque los paquetes y todo cuando lo cargue en el servidor de CI. – Jaime

+0

Gracias a su sugerencia de edición lo hizo. – Jaime

+0

Creo que debería ser un OR en el ejemplo final en lugar de un AND, es decir, $ (RestorePackages) == '' O $ (Configuración) == 'Depurar'. –

Cuestiones relacionadas