Aquí está el trato: tenemos que decirle a NuGet y TFS que ignoren los paquetes, porque NuGet está tratando de hacer cosas relacionadas con el control de origen que no deberían estar haciendo (¡mal, Microsoft!). Entonces tienes que hacer dos cosas.
Primero, agregue un archivo con nombre .tfignore
a la carpeta de la solución (tenga en cuenta la falta de s
después de tf
). Su contenido debe ser el siguiente:
\packages
Eso le dice a TFS que ignore su carpeta de paquetes. Ahora, pensaría que esto también ignoraría el repositories.config
archivo. Pero no lo hará. ¿Por qué? Quién sabe, los caminos de Microsoft son extraños y misteriosos. En realidad, creo que es parte de las cosas de NuGet que describo a continuación, pero si eso se soluciona en el futuro y desea mantener el repositories.config
archivo en lugar de permitir que VS lo regenere, debería poder usar esto:
\packages
!\packages\repositories.config
Bien, ahora gracias a nuestro .tfignore
archivo, TFS está ignorando sus paquetes. Todo está bien, ¿verdad? Incorrecto , porque NuGet está jugando con su control de origen y está agregando los paquetes a sus cambios pendientes. Así que ahora digamos a NuGet que ya lo corte.
Cree una carpeta llamada .nuget
en la raíz de su carpeta de solución. 1 Ahora, cree un archivo llamado NuGet.config
y póngalo en esta nueva carpeta 2 . Su contenido debería verse así:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
</configuration>
Y ahora sus paquetes deben estar fuera del control de la fuente. Solo recuerde agregar los archivos NuGet.config
y .tfignore
al control de origen para que nunca se pierdan.
EDITAR: si tiene problemas, es posible que desee eliminar la carpeta de paquetes, verifique ese cambio y luego siga los pasos anteriores.
TAMBIÉN EDITAR: Parece que esto no sucederá con las versiones más nuevas de Nuget. Entonces, si cambia a VS / TFS 2017, este problema se solucionará sin saltar a través de los aros anteriores.
1 . Agregue la carpeta usando Source Control Explorer; Haga clic con el botón derecho en la solución-> Agregar carpeta ->. nuget
2 . Cuando descubrí esto usando VS 2013, encontré que NuGet.config tenía que ir en la carpeta .nuget. Incluso si ya tiene un archivo NuGet.config en la raíz de la carpeta de su solución (porque, por ejemplo, su empresa tiene una fuente Nuget interna). Sin embargo, algunos de los comentarios han indicado que funciona bien en la raíz de la solución en VS 2015. Personalmente, cambié a usar TFS en modo git, por lo que no puedo probar. Además, si tiene un feed personalizado, asegúrese de tener el feed personalizado y nuget.org como claves en el archivo Nuget.config, o en ocasiones TFS decidirá al azar que no puede restaurar los paquetes.