web-dev-qa-db-fra.com

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

J'ai rencontré le problème suivant, lors de la tentative de génération à l'aide d'une définition de génération TFS.

Lors de l'exécution d'une génération, l'agent enregistre les erreurs suivantes:

Erreur CS0234: le nom de type ou d'espace de noms "VisualStudio" n'existe pas dans l'espace de noms "Microsoft" (vous manque-t-il une référence d'assembly?)

Erreur CS0246: le type ou le nom de l'espace de noms "TestInitializeAttribute" est introuvable (manque-t-il une directive using ou une référence d'assembly?)

Erreur CS0246: le type ou le nom de l'espace de noms 'TestCleanupAttribute' est introuvable (manque-t-il une directive using ou une référence d'assembly?)

Erreur CS0246: le type ou le nom de l'espace de noms 'TestCleanup' est introuvable (manque-t-il une directive using ou une référence d'assembly?)

Erreur CS0246: le type ou le nom de l'espace de noms 'TestMethodAttribute' est introuvable (manque-t-il une directive using ou une référence d'assembly?)

Je comprends donc le message de cette façon, que le buildAgent est incapable de trouver le fichier .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.

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

Il doit y avoir une sorte de 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 peux créer localement la solution à l'aide de Visual Studio 2017 RC sur cette machine. Mais l'agent de génération renvoie toujours les mêmes erreurs.

13
Tobias Theel

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

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

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

C'est le framework mstestv2.

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

Les erreurs de build ont disparu maintenant.

Mise à jour:

Si vous voulez que vos tests soient détectables, ajoutez MSTest TestAdapter à votre projet.

Merci à Maciej pour ces informations.

22
Tobias Theel

J'ai changé le cadre cible de 4.7 à 4.6.1 dans VS 2017, et il a été corrigé

3
Charlie

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

Le message clé était un avertissement plus tôt dans le journal de génération:

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

2
JordanBean