16 votes

Erreur CS0234 lors de la création d'une solution à l'aide de TFS 2017 BuildAgent

J'ai rencontré le problème suivant, lorsque j'ai essayé de construire en utilisant une définition de construction TFS.

Lors de l'exécution d'un Build, l'agent enregistre les erreurs suivantes :

Erreur CS0234 : Le nom de type ou d'espace de nom 'VisualStudio' n'existe pas dans l'espace de nom 'Microsoft' (il vous manque une référence d'assemblage ?).

Erreur CS0246 : Le nom de type ou d'espace de nom 'TestInitializeAttribute' n'a pas pu être trouvé (il vous manque une directive using ou une référence d'assemblage).

Erreur CS0246 : Le nom de type ou d'espace de nom 'TestCleanupAttribute' n'a pas pu être trouvé (il vous manque une directive using ou une référence d'assemblage).

Erreur CS0246 : Le nom de type ou d'espace de nom 'TestCleanup' n'a pas pu être trouvé (il vous manque une directive using ou une référence d'assemblage).

Erreur CS0246 : Le nom de type ou d'espace de nom 'TestMethodAttribute' n'a pas pu être trouvé (il vous manque une directive using ou une référence d'assemblage).

Je comprends donc le message de cette façon, que le buildAgent est incapable de trouver le .dll suivant

Microsoft.VisualStudio.TestTools.UnitTesting ;

J'ai installé Visual Studio 2017 RC et Visual Studio 2017 Build Tools sur le serveur, qui exécute TFS et les Buildagents.

J'ai également installé .net 4.6.1 sur cette machine.

Ce site réponse acceptée n'est pas une solution pour moi.

Il doit y avoir une solution, qui n'inclut pas de copier cette dll dans le tronc git et de la référencer à partir de là.

Mise à jour

Je suis capable de construire localement la solution en utilisant Visual Studio 2017 RC sur cette machine. Mais l'agent de construction lance toujours les mêmes erreurs.

32voto

Tobias Theel Points 1804

J'ai finalement trouvé comment résoudre ce problème.

J'ai ajouté le paquet nuget suivant comme référence à mon projet :

https://www.nuget.org/packages/MSTest.TestFramework/

C'est le cadre mstestv2.

Ensuite, j'ai dû supprimer l'ancienne référence au framework mstestv1.

Les erreurs de construction ont disparu maintenant.

Mise à jour :

Si vous souhaitez que vos tests puissent être découverts, ajoutez le texte suivant MSTest TestAdapter à votre projet.

Merci à Maciej pour cette information.

3voto

Charlie Points 104

J'ai modifié le framework cible de 4.7 à 4.6.1 dans VS 2017, et le problème a été résolu.

2voto

BigTuna Points 161

Assurez-vous que vous n'ont pas vérifié dans le répertoire /packages qui contient les paquets et DLLs NuGet. J'ai accidentellement vérifié ce répertoire dans le contrôle des sources et cela a empêché la tâche de restauration de NuGet de télécharger correctement les DLL nécessaires.

Le message clé était un avertissement plus tôt dans le journal de construction :

Avertissement MSB3245 : Impossible de résoudre cette référence. Impossible de localiser l'assemblage "Microsoft.VisualStudio.TestPlatform.TestFramework, Version=14.0.0.0, Culture=neutre, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL". Vérifiez que l'assemblage existe sur le disque disque. Si cette référence est requise par votre code, vous pouvez obtenir des des erreurs de compilation.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X