Sto scrivendo un'utilità per leggere tutti i difetti di un sistema legacy di tracciamento dei bug e importarli in TFS (2008/2010). Sto usando l'API TFS per creare nuovi WorkItem, impostare i loro campi e quindi salvarli. Tuttavia, non sono in grado di modificare i campi "Creato da" e "Data di creazione", poiché sono impostati dal sistema. (E ci sono altri campi troppo che mi piacerebbe essere in grado di forzare i valori per i quali l'impostazione del mittente di essere qualcuno che non è un utente di TFS valida)Forzare in modo programmatico i valori dei campi per un oggetto TFS
// these fail with "The value for the field 'Created By' cannot be changed."
defectWorkItem.Fields["Created By"].Value = defect.Submitter;
defectWorkItem.Fields["Created Date"].Value = defect.SubmitDate;
Ovviamente se non riesco a impostare questi campi, finirò con tutti i bug legacy che sembrano essere stati creati nella stessa data dalla stessa persona.
C'è un modo per utilizzare l'API ma forzare le modifiche ai campi normalmente protetti? Ho esaminato direttamente l'accesso alle tabelle del database TFS, ma lo schema sembra complicato e penso che sarebbe piuttosto rischioso tentare di modificare i dati lì da solo.
grazie, questo suona esattamente cosa Ho bisogno. Lo proverò e contrassegnerò come risposta se riesco a farlo funzionare –
Sai se questo flag è nuovo con TFS 2012? Non è nella versione precedente della libreria. –
Ci ho provato ed è un po 'strano. Innanzitutto, non puoi impostare questi campi sul primo salvataggio, solo i salvataggi successivi. In secondo luogo, non mi consente di modificare System.CreatedBy, anche se posso modificare System.CreatedDate e Microsoft.VSTS.Common.ActivatedDate con questa tecnica. –