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'absence s
après le tf
). Son contenu devrait être le suivant:
\packages
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 le repositories.config
fichier au lieu de laisser VS le régénérer, vous devriez pouvoir utiliser ceci:
\packages
!\packages\repositories.config
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:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
</configuration>
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.