Estoy intentando que TFS (2013) ignore mi packages
carpeta. ¡No quiero que su fuente sea controlada ya que estoy usando NuGet y es genial!
He intentado encubrir (no parece funcionar), he intentado agregar .tfignore
archivos, no se ignora nada. ¿Por qué el equipo de TFS no agrega una opción para ignorar permanentemente una carpeta o archivo como hacen muchos clientes de Subversion?
Respuestas:
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 des
después detf
). Su contenido debe ser el siguiente: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 elrepositories.config
archivo en lugar de permitir que VS lo regenere, debería poder usar esto: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 llamadoNuGet.config
y póngalo en esta nueva carpeta 2 . Su contenido debería verse así: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.
fuente
Una solución alternativa a lo anterior es la siguiente.
Vale la pena señalar que esta solución debería aplicarse por espacio de trabajo TFS. Me ha funcionado de manera mucho más confiable en lugar de usar el
.tfignore
archivo.Puede leer más sobre este enfoque en el artículo del blog Evite que TFS agregue paquetes NuGet instalados al control de origen .
fuente
para las personas que informan que la opción .tfignore no funcionaba con la configuración nuget.config podría ser de interés, estos pasos finalmente me funcionaron:
fuente
Agregue un archivo nuget.config en una carpeta .nuget en su solución. Agregue lo siguiente al archivo nuget.config:
DisableSourceControlIntegration es lo que hace el truco para el Control de versiones de TFS.
fuente
Debe estar utilizando espacios de trabajo locales para
.tfignore
trabajar. El.tfignore
archivo debe estar en la carpeta que contiene los archivos o carpetas que desea ignorar.Entonces, si la estructura de su solución se ve así:
Pondría su archivo .tfignore en \ Project:
El contenido de .tfignore en su caso sería:
\packages
Aquí hay documentación para usted: http://msdn.microsoft.com/library/vstudio/ms245454(v=vs.110).aspx#tfignore
fuente
packages
lugar de\packages
ser relativo.¡Puede configurarlo de forma permanente en
AppData\Roaming
todas sus soluciones (antiguas y nuevas)!En su
%AppData%\NuGet\NuGet.Config
archivo, agregue lo siguiente justo antes de la</configuration>
etiqueta XML ...... puede especificar cualquier ruta que desee: ¡lo importante es colocarla FUERA de su espacio de trabajo TFS!
Ahora nunca más tendrás que preocuparte por esas cosas. Su carpeta de soluciones ya no contendrá ningún paquete; todas las soluciones usarán de manera predeterminada la ubicación de sus paquetes personalizados.
NOTA: esto funciona por usuario.
fuente
Configure su solución para restaurar en la compilación, la carpeta del paquete y el archivo de paquetes se registrarán pero los paquetes no.
fuente
Si está utilizando Git con TFS, debe agregar un archivo ".gitignore". Puede hacer esto en "proyecto de equipo | Configuración | 'agregar ignorar archivo'". Luego abra el archivo y elimine el comentario de la instrucción de ignorar incorporada para los paquetes Nuget.
Si está utilizando TFVC y tiene espacios de trabajo locales configurados, puede usar el archivo ".tfignore" que respeta un formato idéntico al archivo Git. Creo que necesitas "paquetes /".
fuente
Esto no funcionó para mí en Visual Studio en línea y VS2013.
De los otros comentarios parece que su kilometraje puede variar en este momento. Esto es lo que hago:
Verifique todo, incluidos los paquetes.
Elimine todos los paquetes en su solución y luego verifique este cambio (esto eliminará los paquetes de TFS)
Abra la solución y compile lo que agregará los paquetes al proyecto pero TFS no los recogerá.
fuente
La solución que funcionó para mí fue crear un .tfignore y la siguiente configuración en Nuget.Config:
Mi .tfignore contiene esta línea:
[Estoy usando Visual Studio 2015 Update 2]
Esto no es ideal, y actualmente está registrado como un problema abierto en github / nuget:
Facilite la omisión de paquetes de TFVC # 493
fuente
La respuesta de Terje no funciona todo el tiempo para mí, a veces funcionará por un tiempo, pero luego volverá a tener una carga de "adiciones" para mí nuevamente.
La única forma que he encontrado para resolver esto permanentemente es Encubrir la carpeta de paquetes en mi Espacio de trabajo.
Por ejemplo:
fuente
Tuve el mismo problema.
/packages
debería funcionar pero no lo hizo para mí.packages*.*
funcionófuente