Visual Studio & TFS | Evitar que la carpeta de paquetes se suba a servidor

posterCuando trabajamos con TFS, muchas veces subimos más cosas de las necesarias sin darnos cuenta. En este caso, la carpeta con los paquetes que hemos añadido a nuestra solución “packages” que se encuentra en el directorio raíz de la misma, podemos obviarla dado que los paquetes se deberían restaurar automáticamente al compilar la solución. Esta carpeta suele contener archivos bastante grandes en cuanto a tamaño en disco y, además, si trabajamos en equipo, puede traernos de regalo problemas con las versiones de los paquetes.

¿Cómo lo solucionamos?

Bueno, como todo “control de código fuente” que se precie, podemos indicar que se ignoren ciertas carpetas, así que vamos a ver paso a paso cómo evitar que se suba la carpeta de los paquetes.

  1. 1.- Comprobar que la carpeta no está bajo el control de código fuente de TFS y, si lo está, eliminarla
  2. 2.- En la carpeta raíz, es decir, donde se encuentra el fichero .sln, debemos crear una subcarpeta llamada “.nuget”

Si vamos a crear la carpeta desde el Explorador de archivos, tendréis que llamarla “.nuget.” para que no nos dé un error al no identificar un nombre de archivo.

    1. 3.- Dentro de la subcarpeta “.nuget”, crearemos el fichero “Nuget.config” con el siguiente contenido.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <solution>
        <add key="disableSourceControlIntegration" value="true" />
    </solution>
</configuration>
    1. 4.- Volviendo a la carpeta raíz, tenemos que crear el fichero “.tfignore”, recordando el truco anterior si lo hacemos desde el Explorador de archivos, y le añadiremos el siguiente contenido
# Ignore the NuGet packages folder in the root of the repository.
# If needed, prefix 'packages' with additional folder names if it's 
# not in the same folder as .tfignore.
packages

# include package target files which may be required for msbuild,
# again prefixing the folder name as needed.
!packages/*.targets

 

Hecho esto, reiniciamos Visual Studio y cuando protejamos nuestra solución no se volverá a tener en cuenta la carpeta con los paquetes.

Enjoy coding!