Visual Studio

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.
[sourcecode language='xml'  padlinenumbers='true' autolinks='false' htmlscript='false']
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <solution>
        <add key="disableSourceControlIntegration" value="true" />
    </solution>
</configuration>
[/sourcecode]
    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
[sourcecode language='powershell'  autolinks='false']
# 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
[/sourcecode]

 

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!

3 Comentarios

  1. jmnieves

    Yo hago un “CLOAK” a la carpeta packages.

    • santypr

      Es otra opción e incluso puede que para este caso concreto del artículo sea mejor. Gracias por tu comentario 🙂

  2. jmnieves

    Yo hago cloak a la carpeta packages

Leave a Reply

Tema creado por Anders Norén