Je suis tombé sur un bug assez étrange avec TFS aujourd’hui, l’erreur TF215097.
J’ai personnalisé un workflow TFS et créer des CodeActivities spécifiques pour pouvoir déployer des applications en fonction d’environnement. J’ai même équipé mon build de CustomEditor
Sauf que ça ne marche pas quand je lance. Ce qui est bizarre, c’est que cela fonctionnait très bien avant j’ai juste effectué des modifications mais tout à pourtant l’air ok.
Sous TFS 2005 tout était stocké au niveau de la définition des builds, dès TFS 2008 une partie a migrée en base… Et depuis TFS 2010, tout est en base de données. Pour s’en assurer, il suffit de se connecter à la base de données SQL Server de TFS pour votre Team Project Collection (attention, ne modifier pas cette base sinon c’est votre garantie qui n’est plus valide). La petite requête suivante fait apparaître la colonne ProcessParameters
Si on effectue la requête suivante…
… et que l’on clique sur le lien proposé, on obtient le résultat suivant (j’ai formaté les éléments)
On constate ainsi que seul les valeurs non par défaut sont sauvegardées en base. On remarque également que tout n’est pas à jour.
J’avais malencontreusement supprimé des paramètres, TFS n’arrivait pas à se configurer car ses paramètres de base de données ne correspondaient pas à mes paramètres…
La solution consisterait donc simplement à cliquer sur Refresh^^
Et voilà… Ca n’a pas marché… Ptdr !!! LOL x 1000 !!
Vous vous attendiez à ce que ça fonctionne du premier coup ? Allez quoi, dans la vie vrai de l’informaticien ça ne marche que rarement du 1er coup.
Je vous rassure, je ne suis pas taré (quoique…). Ce que je viens de vous expliquer plus haut correspond au problème que vous rencontrerez dans 99% des cas avec ce numéro d’erreur TFS.
Dans mon cas de figure, non seulement j’avais ce problème (et je ne l’aurais vu qu’après avoir réellement réparer mon autre bug) , mais également un autre… Un tout bête… Un tout simple… Sauf que TFS ne nous indique pas clairement son erreur.
Mon assembly contenait non seulement des Code Activity mais également des editors comme je l’ai dit tantôt. Ces editors devaient récupérer des valeurs de paramétrage d’autres champs de mon Build Definition. Ne sachant pas initialement comment faire, je suis parti côté VsPackage et autres EnvDTE (ce qui n’est pas une bonne idée, car on a déjà tout avec TFS. Je vous expliquerai cela dans un prochain post).
Bref, ces ajouts ont des dépendances vers Visual Studio !! Or les Dll de Visual Studio ne sont pas installées sur vos serveurs de Build. Dans mon cas de figure, ayant trouver comment faire sans les VsPackage et EnvDte, il m’a suffit d’enlever ces références, de tout rebuilder et de tout « chek-iner » pour que cela fonctionne. Si je n’avais pas pu faire cela, si votre assembly possède des dépendances, il suffit de les archiver en même tant que votre assembly dans le contrôleur de source pour que le serveur de build les récupère.