Estoy escribiendo una utilidad para leer todos los defectos de un sistema de seguimiento de errores heredado, e importarlos a TFS (2008/2010). Estoy usando la API de TFS para crear nuevos artículos de trabajo, establecer sus campos y luego guardarlos. Sin embargo, no puedo modificar los campos "Creado por" y "Fecha de creación", ya que estos son establecidos por el sistema. (Y hay otros campos también, lo cual me gustaría ser capaz de forzar valores para, como configurar el remitente que ser alguien que no es un usuario válido TFS)Forzar forzosamente valores de campo para un artículo de trabajo 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;
Obviamente si no puede establecer estas campos, terminaré con todos los errores heredados que parecen creados en la misma fecha por la misma persona.
¿Hay alguna forma de que pueda usar la API pero forzar cambios a campos que normalmente están protegidos? He buscado acceder a las tablas de la base de datos TFS directamente, pero el esquema parece complicado y creo que sería bastante arriesgado intentar modificar los datos allí.
gracias, esto suena exactamente lo que Necesito. Lo probaré y lo marcaré como respuesta si puedo hacerlo funcionar –
¿Sabes si esta bandera es nueva con TFS 2012? No está en la versión anterior de la biblioteca. –
He estado probando esto y es un poco extraño. Primero, no puede establecer estos campos en el primer guardado, solo guarda subsecuentes. En segundo lugar, no me permitirá cambiar System.CreatedBy, aunque puedo cambiar System.CreatedDate y Microsoft.VSTS.Common.ActivatedDate con esta técnica. –