J'utilise NuGet Package Restore. Je souhaite spécifier des sources personnalisées lors d'un processus de serveur de génération TFS.
Le fichier NuGet.targets du dossier '.nuget' masqué indique que vous pouvez spécifier des référentiels de sources ou qu'il reviendra au fichier NuGet.config dans% APPDATA%\NuGet\NuGet.config.
Il existe cependant un NuGet.config dans le dossier caché '.nuget'. J'ai supposé que si vous ne spécifiiez pas de référentiels de sources dans NuGet.targets, il serait renvoyé au NuGet.config dans le dossier caché '.nuget'. Cela ne semble pas être le cas.
Des idées?
Selon pranavkm, l'un des développeurs de NuGet, au moment d'écrire ces lignes, NuGet Package Restore n'utilisera pas le fichier NuGet.config dans le dossier caché '.nuget' pour les sources. Il n'est utilisé pour le moment que pour un paramètre spécifique à la solution (pour ignorer les liaisons de contrôle de source). Il dit que l’équipe NuGet doit prendre en compte tous les aspects de NuGet.config, mais qu’elle continue d’être dépassée en priorité.
Avec la version actuelle de NuGet, il est possible de spécifier des référentiels personnalisés dans le fichier NuGet.config de la solution et d'activer la restauration de package lors d'une construction. Ce fichier NuGet.config nous a permis de restaurer automatiquement les packages du référentiel interne sous une construction TFS sans aucune autre action dans la définition de construction:
<configuration>
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
<packageSources>
<add key="Internal" value="http://MyInternalRepository/nuget" />
</packageSources>
<packageRestore>
<add key="enabled" value="True" />
</packageRestore>
</configuration>
Remarque: Les modèles de processus de construction par défaut de TFS2013 implémentent déjà le flux de travaux de restauration de paquet NuGet sans configuration spéciale, comme indiqué ici: http://docs.nuget.org/docs/reference/package-restore-with-team-build
Si vous activez la restauration de package, vous trouverez un fichier MSGuild NuGet.targets dans le dossier $ (SolutionDir) \. Nuget.
Vous pouvez définir les sources du package en modifiant l'élément <PackageSources> "" </ PackageSources>.
Exemple:
<!-- Package sources used to restore packages. By default will used the registered sources under %APPDATA%\NuGet\NuGet.Config -->
<PackageSources>"http://packages.nuget.org/api/v2/;http://myget.org/F/myfeed/"</PackageSources>
Une autre option consiste à ajouter des sources à une configuration de nuget sur l'ensemble de la machine (non spécifique à l'utilisateur) sur le serveur de construction.
dans tfs build 2017 lorsque vous utilisez la tâche version 1 de NuGet Restore. * vous pouvez sélectionner le fichier NuGet.Config à utiliser lors de la construction . Voir image ci-dessous Tâche NuGet Restore