Abbiamo un processo di compilazione personalizzato (non utilizzando MS Build) e durante tale processo aggiungo una build "falsa" all'elenco di build globali. Il motivo per cui lo sto facendo è che puoi selezionare la build per un determinato oggetto di lavoro (trovato in build). Abbiamo un campo personalizzato, incluso nella compilazione, che ha lo scopo di mostrare in quale build è stato corretto l'elemento di lavoro. Non riesco a capire come aggiornare questo campo a livello di codice. L'idea è che avrò una piccola app che farà ciò che chiamerò durante il processo di costruzione, trovando tutti gli elementi di lavoro dall'ultima build, quindi aggiornando il campo per quegli elementi di lavoro. Qualche idea?Come aggiornare un campo TFS personalizzato a livello di programmazione
risposta
Qualcosa del genere dovrebbe funzionare per voi:
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 esempio di chiamare questo sarebbe:
UpdateTFSValue("http://tfs2010dev:8080/tfs", "Integration Build", "Build Name", 1234);
La variabile fieldToUpdate
dovrebbe essere il nome del campo, non il refname (vale a dire Integrazione Build, non Microsoft.VSTS.Build.IntegrationBuild)
Probabilmente si potrebbe farcela usando PartialOpen(), ma non sono sicuro.
Probabilmente sarà necessario aggiungere Microsoft.TeamFoundation.Client
al progetto. (E forse Microsoft.TeamFoundation.Common
)
Grazie, questo è esattamente quello che stavo cercando! – Nick
+1 Chiedo perché questa risposta non è mai stata votata? –
Non sono sicuro se hanno cambiato qualcosa o se tutti lo capiscono ma è necessario: workItem.Fields [fieldToUpdate] .Value in TFS 2012 altrimenti si otterrà un errore sulla raccolta dei campi in sola lettura; –
Questo è cambiato per TFS 2012, fondamentalmente si deve aggiungere workItem.Fields [fieldToUpdate] .Value
versione aggiornata di quello che ha scritto @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. Come si salva un valore in un campo personalizzato in JIRA a livello di programmazione?
- 2. Come aggiornare un browser a livello di programmazione
- 3. Eclipse: come aggiornare il progetto corrente a livello di programmazione
- 4. Come creare un campo di riferimento entità in Drupal 8 a livello di programmazione?
- 5. Come si traccia un gruppo di modifiche TFS su più filiali a livello di programmazione?
- 6. Come faccio ad aggiornare a livello di programmazione una pagina di visualizzazione con AJAX?
- 7. Come arrestare un servizio di Windows a livello di programmazione?
- 8. Come aggiornare/ricaricare a livello di programmazione un progetto VS dopo aver modificato il file sottostante?
- 9. Ingrandire un MKMapView a livello di programmazione
- 10. Interroga a livello di programmazione le autorizzazioni su un repository Git ospitato su TFS
- 11. , verificare a livello di programmazione
- 12. Timeout a livello di programmazione di un test in MSTest
- 13. Come attivare "Installato" a livello di programmazione?
- 14. Come impostare windowDrawsSystemBarBackgrounds a livello di programmazione?
- 15. Come programmare un'attività a livello di programmazione
- 16. Come utilizzare AcroTextExtractor.exe a livello di programmazione?
- 17. Ionico come tornare a livello di programmazione
- 18. Accesso a livello di programmazione a TFS 2010 dall'esterno del dominio
- 19. Come nascondere UITabBarController a livello di programmazione?
- 20. come inviare sms a livello di programmazione?
- 21. Come disabilitare SparkUI a livello di programmazione?
- 22. Come configurare ELMAH a livello di programmazione?
- 23. Come aprire selezionare a livello di programmazione
- 24. Come ottenere la cronologia completa della cartella da TFS a livello di programmazione?
- 25. Come ottenere informazioni a livello di programmazione sui rami in TFS?
- 26. Come creare un modulo di Windows a livello di programmazione?
- 27. Come creare un punto di accesso a livello di programmazione
- 28. Selezione di testo parziale in un campo di input a livello di programmazione
- 29. Come ottenere a livello di programmazione il livello audio corrente?
- 30. Come aggiornare il desktop di Windows a livello di programmazione (ad esempio F5) da C#?
Puoi essere più specifico sulla parte della lista delle build globali. Stai usando un modello di build personalizzato (in Windows Workflow Foundation)? Stai aggiungendo a una variabile o argomento in quel modello? – LWoodyiii
Siamo spiacenti, sto usando l'elenco globale in TFS. Non sto usando un modello di build, stiamo usando un prodotto chiamato Automated Build Studio per la build vera e propria. Stavo per scrivere un'app standalone per chiamare da ABS questa funzionalità. – Nick