J'ai récemment commencé à utiliser de NuGet pour gérer les paquets externes. Pour l'instant j'en ai besoin pour NLog. Tout fonctionne bien quand je Construire le projet dans visual studio 2012. Cependant, j'essaie TeamCity comme un serveur CI (je suis assez nouveau à l'IC) et il me donne l'erreur suivante:
[Csc] SomeNamespace\SomeClass.cs(10, 7): error CS0246:
The type or namespace name 'NLog' could not be found
(are you missing a using directive or an assembly reference?)
(cette erreur est répétée tout au long de l'endroit où je utiliser NLog)
Maintenant, je n'ai pas inclure les 'packages/ dossier SVN, car je pensais que c'était une bonne pratique de ne pas inclure les fichiers binaires et laissez MSBuild dans TeamCity les télécharger sur son propre. Cependant, c'est clairement pas le faire. Je NE la " packages.xml fichier SVN. Que puis-je vérifier pour voir ce qui ne va pas?
Mise à jour Grâce à @DavidBrabant j'ai été poussé dans la bonne direction. Cependant, maintenant, je reçois l'erreur suivante dans TeamCity:
Package restore is disabled by default. To give consent, open the Visual Studio Options dialog,
click on Package Manager node and check 'Allow NuGet to download missing packages during build.'
Cependant, je ne suis pas dans Visual Studio, mais TeamCity, donc je ne sais pas comment définir le "consentement" de vrai! J'ai tenté de RestorePackages 'true' dans le NuGet.les objectifs de fichier:
<RestorePackages Condition=" '$(RestorePackages)' == '' ">true</RestorePackages>
mais cela n'a pas fonctionné.
Mise à jour 2 Pour le faire fonctionner, j'ai également définir la propriété suivante NuGet.objectifs:
<RequireRestoreConsent Condition=" '$(RequireRestoreConsent)' != 'true' ">false</RequireRestoreConsent>
De ce fait l'accumulation d'exécuter avec succès!