Nous avons un processus de construction personnalisé (n'utilisant pas MS Build) et pendant ce processus j'ajoute une construction "fake" à la liste des builds globaux. La raison pour laquelle je fais cela est que vous pouvez sélectionner la construction pour un élément de travail donné (trouvé dans la construction). Nous avons un champ personnalisé, build inclus, qui est destiné à montrer dans quelle construction cet élément de travail a été corrigé. Je n'arrive pas à trouver comment mettre à jour ce champ par programmation. L'idée est que je vais avoir une petite application qui fait cela que j'appellerai pendant le processus de construction, en trouvant tous les éléments de travail depuis la dernière construction, puis en mettant à jour le champ pour ces éléments de travail. Des idées?Comment mettre à jour un champ TFS personnalisé par programmation
Répondre
Quelque chose comme cela devrait fonctionner pour vous:
public void UpdateTFSValue(string tfsServerUrl, string fieldToUpdate,
string valueToUpdateTo, int workItemID)
{
// Connect to the TFS Server
TfsTeamProjectCollection tfs = new TfsTeamProjectCollection(new Uri(tfsUri));
// Connect to the store of work items.
_store = (WorkItemStore)tfs.GetService(typeof(WorkItemStore));
// Grab the work item we want to update
WorkItem workItem = _store.GetWorkItem(workItemId);
// Open it up for editing. (Sometimes PartialOpen() works too and takes less time.)
workItem.Open();
// Update the field.
workItem.Fields[fieldToUpdate] = valueToUpdateTo;
// Save your changes. If there is a constraint on the field and your value does not
// meet it then this save will fail. (Throw an exception.) I leave that to you to
// deal with as you see fit.
workItem.Save();
}
Un exemple d'appeler ce serait:
UpdateTFSValue("http://tfs2010dev:8080/tfs", "Integration Build", "Build Name", 1234);
La fieldToUpdate
variable doit être le nom du champ, pas le refname (c.-à- Integration Build, et non Microsoft.VSTS.Build.IntegrationBuild)
Vous pourriez probablement partir en utilisant PartialOpen(), mais je ne suis pas sûr. Vous devrez probablement ajouter Microsoft.TeamFoundation.Client
à votre projet. (Et peut-être Microsoft.TeamFoundation.Common
)
Merci, c'est exactement ce que je cherchais! – Nick
+1 Demande pourquoi cette réponse n'a jamais été élue? –
Vous ne savez pas si elles ont changé quelque chose ou si tout le monde comprend cela, mais vous devez faire: workItem.Fields [fieldToUpdate] .Valeur dans TFS 2012 sinon vous obtiendrez une erreur sur la collection de champs en cours de lecture; –
Cela a changé pour TFS 2012, basiquement vous devez ajouter workItem.Fields [fieldToUpdate] .Value
Version mise à jour de ce qu'écrit @Vaccano.
public void UpdateTFSValue(string tfsServerUrl, string fieldToUpdate,
string valueToUpdateTo, int workItemID)
{
// Connect to the TFS Server
TfsTeamProjectCollection tfs = new TfsTeamProjectCollection(new Uri(tfsUri));
// Connect to the store of work items.
_store = (WorkItemStore)tfs.GetService(typeof(WorkItemStore));
// Grab the work item we want to update
WorkItem workItem = _store.GetWorkItem(workItemId);
// Open it up for editing. (Sometimes PartialOpen() works too and takes less time.)
workItem.Open();
// Update the field.
workItem.Fields[fieldToUpdate].Value = valueToUpdateTo;
// Save your changes. If there is a constraint on the field and your value does not
// meet it then this save will fail. (Throw an exception.) I leave that to you to
// deal with as you see fit.
workItem.Save();
}
- 1. Comment mettre à jour un type de contenu par programmation?
- 2. Mettre à jour un curseur par programmation dans Dojo
- 3. Java: Comment mettre à jour ListCellRenderer personnalisé?
- 4. Magento: Mettre à jour le logo du magasin par programmation
- 5. Mettre à jour le fichier Excel intégré par programmation
- 6. Comment mettre à jour un champ HSTORE avec Flask-Admin?
- 7. Mise à jour par programmation de la valeur de colonne du type de champ personnalisé SharePoint
- 8. Mettre à jour le fichier Excel dans SharePoint par programmation
- 9. Comment mettre à jour le champ datetime
- 10. Comment mettre à jour champ heure django
- 11. Comment mettre à jour un champ date/heure d'un élément de liste, par programmation avec la donnée formatée
- 12. Comment ne pas mettre à jour un champ sur postUpdate?
- 13. Mettre à jour le champ par 1 PDO
- 14. Android: Comment mettre à jour un composant de ListView personnalisé
- 15. Comment mettre à jour un baseadapter personnalisé après onListItemClick?
- 16. Comment mettre à jour l'enregistrement/champ d'un document dans couchdb
- 17. Comment mettre à jour un champ avec des données aléatoires?
- 18. Comment mettre à jour un champ DateTime dans T-SQL?
- 19. Comment mettre à jour un champ spécifique dans voiles mongodb
- 20. Comment mettre à jour un champ BLOB sur le serveur?
- 21. Comment mettre à jour un champ datetime avec PHP MySQL?
- 22. Comment mettre à jour un seul champ en utilisant EF4
- 23. Comment mettre à jour un seul champ dans l'objet has_many
- 24. API TFS - Mise à jour d'un champ d'élément de travail
- 25. comment mettre à jour la TTL en programmation C?
- 26. Comment mettre à jour un UILabel dans Xcode par programmation sans fichiers XIB?
- 27. Comment mettre un balisage personnalisé dans un champ sc sitecore?
- 28. comment mettre à jour par IdItem
- 29. Comment mettre à jour PropertyGrid à partir d'un éditeur personnalisé?
- 30. Mettre à jour les fichiers par programme dans un espace de travail tfs
Pouvez-vous être plus précis sur la partie de la liste des builds globaux. Utilisez-vous un modèle de construction personnalisé (dans Windows Workflow Foundation)? Ajoutez-vous une variable ou un argument dans ce modèle? – LWoodyiii
Désolé, j'utilise la liste globale dans TFS. Je n'utilise pas de modèle de construction, nous utilisons un produit appelé Automated Build Studio pour la construction proprement dite. J'allais juste écrire une application autonome pour appeler de l'ABS pour cette fonctionnalité. – Nick