web-dev-qa-db-fra.com

Comment empêcher le VS2015 NuGet d'ajouter des packages à TFS

VS2013 avait un bogue dans lequel NuGet ajouterait des packages en tant que modifications en attente, même si vous lui aviez dit de ne pas utiliser .tfignore. Il y avait un solution de contournement , mais cela ne fonctionne pas avec VS2015/NuGet3, et NuGet est revenu à ses vieilles astuces. Existe-t-il une solution de contournement "Nu"? :-)

Élément Microsoft Connect: NuGet ajoute des packages à TFS malgré .tfignore

43
Edward Brey

Il semble que cela soit corrigé dans version 3.2 RC de l’extension NuGet Visual Studio 2015 - la mise à jour vers cette version a fonctionné au moins pour moi.

Vous trouverez une discussion à ce sujet ici où il est recommandé de mettre à jour NuGet 3.1 à 3.2 RC.

Mettre à jour

La version 3.2 de l'extension est maintenant disponible (found here ) et inclut ce correctif.

Clarification

Pour que cela fonctionne, vous avez besoin de deux choses:

  1. Un fichier nuget.config contenant le paramètre disableSourceControlIntegration
  2. Une version de l'extension NuGet Visual Studio 2015 qui respecte le paramètre disableSourceControlIntegration (les versions à partir de 3.2 devraient fonctionner)

Comme indiqué dans la docs :

NuGet charge d'abord NuGet.config à partir de l'emplacement par défaut, puis charge tout fichier nommé NuGet.config à partir de la racine du lecteur en cours et se terminant dans le répertoire en cours.

Cela signifie que vous pouvez spécifier <solution><add key="disableSourceControlIntegration" value="true" /></solution> dans le fichier de configuration default pour votre profil utilisateur (situé à %APPDATA%\NuGet\NuGet.Config) ou dans le fichier de configuration NuGet du répertoire de votre solution, par exemple \MySolution\.NuGet\NuGet.config.

41
nick_w

Dans votre fichier %AppData%\NuGet\NuGet.Config, ajoutez ce qui suit juste avant la balise XML </configuration> ...

<config>
  <add key="repositoryPath" value="C:\NuGetPackages" />
</config>
<solution>
  <add key="disableSourceControlIntegration" value="true" />
</solution>

... vous pouvez spécifier le chemin que vous voulez - l'important est de le placer à l'extérieur de votre espace de travail TFS!

Maintenant, vous n'avez plus jamais à vous soucier de ce genre de choses. Votre dossier de solution ne contiendra plus aucun paquet; toutes les solutions utiliseront par défaut votre emplacement de packages personnalisés.

NOTE - Cela fonctionne par utilisateur.

Jusqu'à présent, je faisais la même chose d'une manière qui config-par-une-solution (\.nuget\NuGet.Config). Merci à @dsghi pour la perspicacité!

Assurez-vous que votre dossier de solution ne contient pas de dossier .nuget (ancienne façon de faire les choses). Même si le dossier N'EST PAS inclus dans la solution et uniquement dans le système de fichiers, il remplacera tout!

5
Heliac

J'ai le même problème et je n'ai pas encore trouvé de solution réelle.

La seule solution que j'ai trouvée jusqu'à présent est la suivante:

  • Cliquez avec le bouton droit de la souris sur le dossier des packages dans "Team Explorer - Modifications en attente" .__ et sélectionnez "Annuler".
0
Drol