2017-08-14 2 views
1

J'ai eu du mal à faire fonctionner NuGet pendant plus d'une semaine maintenant. J'ai finalement réussi à travailler sur des builds locaux, mais pas sur les builds de TFS 2013. Je rétréci vers le bas NuGet ne se produit pas au cours de l'équipe construit, mais quand j'ajoutéLa commande "C: Main Src .nuget nuget.exe restore -SolutionDirectory .. " est sortie avec le code 1

$(SolutionDir).nuget\nuget.exe restore -SolutionDirectory ..\ 

à l'événement pré-construction sur mon premier projet dans l'ordre de construction et je reçois cette erreur. Et si j'exécute cette commande à partir de la ligne de commande dans le répertoire de la solution, cela fonctionne très bien. Il construit localement bien, mais sur le serveur de construction, je reçois cette erreur "code 1". Grrrrr très utile! J'ai donc ouvert la source que TFS obtient avant la construction et j'ai essayé de faire une construction locale sur le serveur de builds et j'ai la même erreur (même si ça marche bien sur ma machine locale). J'ai essayé d'augmenter la verbosité sur la construction d'équipe mais cela montre juste la même erreur. Désolé - J'ai googlé cette erreur et trouvé beaucoup de réponses, mais rien qui a aidé ...

BTW, quand je cours la version de nuget.exe dans la solution c'est la version 3.4.3.855.

Répondre

1

Pour activer la restauration package NuGet avec TFS build XAML, s'il vous plaît essayer de suivre ci-dessous les étapes:

  1. Dans VS IDE, allez à Outils -> Options -> NuGet Package Manager -> activez Autoriser NuGet à téléchargez les paquets manquants.
  2. Supprimer NuGet.exe et fichiers NuGet.targets du dossier .nuget. Assurez-vous que ces deux fichiers sont également supprimés du contrôle de version.
  3. Retirez les balises de .proj fichier suivants:
1. <RestorePackages>true</RestorePackages> 

    2.<Import Project="$(SolutionDir)\.nuget\nuget.targets" /> 

    3. <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> 
     <PropertyGroup> 
      <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, 
    see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> 
     </PropertyGroup> 
     <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" /> 
    </Target> 

Plus de détails s'il vous plaît se référer cette étape par étape tutoriel: Auto restore Nuget packages with TFS Build the right way

+0

OK @ Patrick-MSFT - Je donne ce un essai. Juste une question. J'ai donc fait ce que vous avez dit et je suis passé à Outils -> Options -> Gestionnaire de paquets NuGet -> puis désactivé Permettre à NuGet de télécharger les paquets manquants, puis tout enregistrer et aucun changement n'a été effectué. Comment cela peut-il affecter la construction du projet s'il n'y a pas de changements dans les projets lorsque vous effectuez cette sélection? –

+0

@Ben_G Désolé, impossible d'obtenir votre point. Parfois, lorsque vous utilisez des paquets NuGet, il peut avoir besoin de paquets supplémentaires comme référence. Avec Autoriser NuGet à télécharger les paquets manquants. Lors de l'installation du package principal, s'il n'est pas en mesure d'installer les packages dépendants, Visual Studio vous permet de télécharger automatiquement les packages manquants. –

+0

Ma question était de savoir comment un paramètre dans mon bureau VS changer une construction si rien n'est enregistré? –