J'essaie d'obtenir que TFS (2013) ignore mon packages
dossier. Je ne veux pas passionnément qu'il soit contrôlé par la source car j'utilise NuGet et c'est génial!
J'ai essayé le camouflage (ne semble pas fonctionner), j'ai essayé d'ajouter des .tfignore
fichiers - rien n'est ignoré. Pourquoi l'équipe TFS n'ajoute-t-elle pas simplement une option pour ignorer définitivement un dossier ou un fichier comme le font de nombreux clients Subversion?!
Réponses:
Voici l'affaire: nous devons dire à NuGet et TFS d'ignorer les packages, car NuGet essaie de faire des choses liées au contrôle de source qu'il ne devrait absolument pas faire (mauvaise forme, Microsoft!). Vous devez donc faire deux choses.
Tout d'abord, ajoutez un fichier nommé
.tfignore
dans le dossier de la solution (notez l'absences
après letf
). Son contenu devrait être le suivant:Cela indique à TFS d'ignorer votre dossier de packages. Maintenant, vous penseriez que cela ignorerait également le
repositories.config
fichier. Mais ce ne sera pas le cas. Pourquoi? Qui sait, les voies de Microsoft sont étranges et mystérieuses. En fait, je pense que cela fait partie des trucs NuGet que je décris ci-dessous, mais si cela se résout à l'avenir et que vous souhaitez conserver lerepositories.config
fichier au lieu de laisser VS le régénérer, vous devriez pouvoir utiliser ceci:OK, maintenant grâce à notre
.tfignore
fichier, TFS ignore vos packages. Tout va bien, non? FAUX , car NuGet contourne votre contrôle de source et ajoute les packages à vos modifications en attente. Alors maintenant, disons à NuGet de le couper déjà.Créez un dossier appelé
.nuget
à la racine de votre dossier de solution. 1 Maintenant, créez un fichier appeléNuGet.config
et placez-le dans ce nouveau dossier 2 . Son contenu devrait ressembler à ceci:Et maintenant, vos packages doivent rester hors du contrôle des sources. N'oubliez pas d'ajouter les fichiers
NuGet.config
et.tfignore
au contrôle de code source afin qu'ils ne se perdent jamais.EDIT: Si vous rencontrez des problèmes, vous souhaiterez peut-être supprimer votre dossier de packages, archivez cette modification, puis suivez les étapes ci-dessus.
ÉGALEMENT ÉDITER: Il semble que cela ne se produira pas avec les nouvelles versions de Nuget. Donc, peut-être que si vous passez à VS / TFS 2017, ce problème disparaîtra sans sauter à travers les cercles ci-dessus.
1 . Ajoutez le dossier à l'aide de l'Explorateur de contrôle de source; cliquez avec le bouton droit sur la solution-> Ajouter un dossier ->. nuget
2 . Lorsque j'ai compris cela à l'aide de VS 2013, j'ai trouvé que NuGet.config devait aller dans le dossier .nuget. Même si vous avez déjà un fichier NuGet.config à la racine de votre dossier de solution (car, disons, votre entreprise dispose d'un flux de pépites interne). Cependant, certains dans les commentaires ont indiqué que cela fonctionne bien dans la racine de la solution dans VS 2015. Personnellement, je suis passé à l'utilisation de TFS en mode git, donc je ne peux pas tester. En outre, si vous disposez d'un flux personnalisé, assurez-vous que vous disposez à la fois du flux personnalisé et de nuget.org en tant que clés dans le fichier Nuget.config, ou parfois TFS décidera au hasard qu'il ne peut pas restaurer les packages.
la source
Une solution alternative à ce qui précède est la suivante.
Il convient de noter que cette solution devrait être appliquée par espace de travail TFS. Cela a fonctionné de manière beaucoup plus fiable pour moi plutôt que d'utiliser le
.tfignore
fichier.Vous pouvez en savoir plus sur cette approche dans l'article de blog Empêcher TFS d'ajouter des packages NuGet installés au contrôle de code source .
la source
pour les personnes signalant que l'option .tfignore ne fonctionnait pas avec le paramètre nuget.config, cela pourrait être intéressant - ces étapes ont finalement fonctionné pour moi:
la source
Ajoutez un fichier nuget.config dans un dossier .nuget de votre solution. Ajoutez ce qui suit au fichier nuget.config:
Le disableSourceControlIntegration est ce qui rend l'astuce pour le contrôle de version TFS.
la source
Vous devez utiliser des espaces de travail locaux pour
.tfignore
travailler. Le.tfignore
fichier doit se trouver dans le dossier qui contient les fichiers ou dossiers que vous souhaitez ignorer.Donc, si la structure de votre solution ressemble à ceci:
Vous mettriez votre fichier .tfignore dans \ Project:
Le contenu du .tfignore dans votre cas serait:
\packages
Voici une documentation pour vous: http://msdn.microsoft.com/library/vstudio/ms245454(v=vs.110).aspx#tfignore
la source
packages
plutôt\packages
que comme c'est relatif.Vous pouvez définir cela de façon permanente dans vos
AppData\Roaming
solutions pour toutes les anciennes (nouvelles et anciennes)!Dans votre
%AppData%\NuGet\NuGet.Config
fichier, ajoutez ce qui suit juste avant la</configuration>
balise XML ...... vous pouvez spécifier n'importe quel chemin d'accès - l'important est de le placer EN DEHORS de votre espace de travail TFS!
Maintenant, vous n'avez plus à vous soucier de ce genre de choses. Votre dossier de solution ne contiendra plus de packages; toutes les solutions utiliseront par défaut l'emplacement de vos packages personnalisés à la place.
REMARQUE - Cela fonctionne est sur une base par utilisateur.
la source
Définissez votre solution pour restaurer lors de la construction, le dossier et le fichier des packages seront archivés mais pas les packages.
la source
Si vous utilisez Git avec TFS, vous devez ajouter un fichier ".gitignore". Vous pouvez le faire dans "projet d'équipe | Paramètres | 'ajouter ignorer le fichier'". Ensuite, ouvrez le fichier et décommentez l'instruction ignore intégrée pour les packages Nuget.
Si vous utilisez TFVC et que vous avez configuré des espaces de travail locaux, vous pouvez utiliser le fichier ".tfignore" qui respecte un format identique au fichier Git. Je pense que vous avez besoin de "packages /".
la source
Cela n'a pas fonctionné pour moi sur Visual Studio Online et VS2013.
D'après les autres commentaires, il semble que votre kilométrage puisse varier à ce stade. C'est ce que je fais:
Vérifiez tout, y compris tous les colis.
Supprimez tous les packages de votre solution, puis archivez cette modification (cela supprimera les packages de TFS)
Ouvrez la solution et construisez qui ajoutera les packages au projet mais TFS ne les récupérera pas.
la source
La solution qui a fonctionné pour moi a été de créer à la fois un fichier .tfignore et le paramètre suivant dans Nuget.Config:
Mon .tfignore contient cette ligne:
[J'utilise Visual Studio 2015 Update 2]
Ce n'est pas idéal et est actuellement enregistré comme un problème ouvert sur github / nuget:
Facilitez l'omission de packages dans TFVC # 493
la source
La réponse de Terje ne fonctionne pas tout le temps pour moi, parfois cela fonctionnera pendant un certain temps, mais alors cela suspendra une charge d '"ajouts" pour moi encore une fois.
Le seul moyen que j'ai trouvé pour résoudre ce problème de manière permanente est de masquer le dossier des packages dans mon espace de travail.
Par exemple:
la source
J'ai eu le même problème.
/packages
devrait fonctionner mais pas pour moi.packages*.*
a fonctionné.la source