Actividades de Team Foundation Build

Las actividades de Team Foundation Build son componentes fundamentales del proceso de compilación del sistema de Team Foundation Build. Puede utilizarlas para crear un proceso de compilación personalizado que satisfaga los requisitos del equipo, por ejemplo, lógica personalizada o tareas especializadas.

En la mayoría de los casos, la mejor manera de crear una plantilla personalizada del proceso de compilación es basándola en la plantilla predeterminada (DefaultTemplate.xaml). De esta manera, se aprovecha la funcionalidad que es, en general, útil y que ya se ha creado al personalizar partes concretas para que cumplan los requisitos. Otra ventaja de este enfoque es que puede ver ejemplos concretos y prácticos sobre las actividades que se describen en este tema. Para obtener información sobre cómo crear una plantilla de procesos de compilación, vea Personalizar la plantilla de proceso de compilación.

Importante

Tendrá que crear un proceso de compilación personalizado solo cuando tenga que cumplir con requisitos especializados.Puede utilizar DefaultTemplate.xaml para definir rápidamente un proceso de compilación que cumpla un gran número de requisitos típicos.Para obtener más información, vea Utilizar la plantilla predeterminada para el proceso de compilación.

En este tema

  • Permisos necesarios

  • Referencia orientada a objetivos de las actividades

  • Referencia alfabética de las actividades

Permisos necesarios

Para realizar procedimientos que utilizan las actividades de Team Foundation Build, debe tener los permisos siguientes establecidos en Permitir:

  • Editar definición de compilación

  • Desproteger y Proteger en los directorios pertinentes de control de versiones (como el subdirectorio BuildProcessTemplates del proyecto de equipo)

  • Compilaciones en cola

Para obtener más información, vea Referencia de permisos para Team Foundation Server.

Referencia orientada a objetivos de las actividades

  • Realizar tareas básicas

    • Obtener los valores de las variables de entorno

    • Probar variables con valores null

    • Obtener las rutas de acceso a los archivos del área de trabajo

    • Trabajar con los directorios

    • Obtener la ruta de acceso al directorio de trabajo del agente de compilación

    • Descargar archivos que no están en un área de trabajo

    • Buscar archivos

    • Escribir advertencias, errores, mensajes y otros datos en el registro de compilación

    • Escribir metadatos de compilación en el almacén de datos

  • Controlar el proceso de compilación

    • Ejecutar las actividades del agente de compilación

    • Usar una estructura de exclusión mutua con nombre para implementar un proceso seguro para subprocesos

    • Limitar las secciones del proceso de compilación en función de la razón (el desencadenador)

  • Compilar, probar y realizar otras tareas

    • Usar MSBuild para compilar los archivos binarios, ejecutar el análisis de código y realizar otras tareas

    • Ejecutar pruebas

    • Obtener una lista de las pruebas a las que afecta la compilación

    • Iniciar un proceso

  • Trabajar con control de versiones

    • Asociar los conjuntos de cambios y los elementos de trabajo con la compilación

    • Proteger cambios controlados

    • Evaluar las directivas de protección

    • Etiquetar los archivos en el sistema de control de versiones

    • Obtener una lista de conjuntos de cambios aplazados

    • TfGet

    • TfResolve

    • TfShelve

    • TfUndo

    • TfUnshelve

    • TfWorkfold

  • Trabajar con elementos de trabajo

    • Asociar los conjuntos de cambios y los elementos de trabajo con la compilación

    • Crear un elemento de trabajo

  • Trabajar con datos de símbolos

    • Insertar las rutas de acceso y las versiones del control de versiones en los datos de símbolos de los archivos .pdb

    • Publicar los símbolos en un almacén de símbolos de SymStore

  • Obtener referencias a objetos útiles

    • Obtener una referencia a un objeto para una colección de proyectos de equipo

    • Obtener una referencia a un objeto para un agente de compilación

    • Obtener una referencia a un objeto para un detalle de compilación

    • Obtener una referencia a un objeto para un entorno de compilación

Referencia alfabética de las actividades

  • AgentScope

  • ApproveRequestForCheckIn

  • AssociateChangesetsAndWorkItems

  • CheckInGatedChanges

  • ConvertWorkspaceItem

  • ConvertWorkspaceItems

  • CopyDirectory

  • CreateDirectory

  • CreateWorkspace

  • DeleteDirectory

  • DeleteWorkspace

  • DownloadFile

  • DownloadFiles

  • EvaluateCheckInPolicies

  • ExpandEnvironmentVariables

  • FindMatchingFiles

  • GenerateRunSettings

  • GetApprovedRequests

  • GetBuildAgent

  • GetBuildDetail

  • GetBuildDirectory

  • GetBuildEnvironment

  • GetCommonLocalPath

  • GetCommonServerPath

  • GetImpactedTests

  • GetPendingChanges

  • GetRejectedRequests

  • GetReshelvedShelveset

  • GetShelvedChanges

  • GetTeamProjectCollection

  • GetWorkspace

  • IndexSources

  • InvokeForReason

  • InvokeProcess

  • IsNotNull<T>

  • IsNull<T>

  • LabelSources

  • LabelWorkspace

  • MSBuild

  • MSTest

  • OpenWorkItem

  • ParseWorkspaceSpec

  • PublishSymbols

  • QueryShelvesets

  • RejectRequestFromCheckIn

  • RetryRequest

  • RetryRequests

  • RevertWorkspace

  • RunOnce

  • RunTests

  • SetBuildProperties

  • SharedResourceScope

  • SyncWorkspace

  • SynchronizeRequests

  • TfGet

  • TfQueryConflicts

  • TfResolve

  • TfShelve

  • TfUndo

  • TfUnshelve

  • TfWorkfold

  • TfsBuild

  • UpdateBuildNumber

  • WriteBuildError

  • WriteBuildInformation<T>

  • WriteBuildMessage

  • WriteBuildTestError

  • WriteBuildWarning

  • WriteCustomSummaryInformation

Realizar tareas básicas

Puede usar las actividades Team Foundation Build para cualquiera de las siguientes tareas:

  • Obtener los valores de las variables de entorno

  • Obtener las rutas de acceso a los archivos del área de trabajo

  • Trabajar con los directorios

  • Obtener la ruta de acceso al directorio de trabajo del agente de compilación

  • Descargar archivos que no están en un área de trabajo

  • Buscar archivos

  • Escribir advertencias, errores, mensajes y otros datos en el registro de compilación

  • Escribir metadatos de la compilación

Obtener los valores de las variables de entorno (actividad ExpandEnvironmentVariables)

Utilice la actividad ExpandEnvironmentVariables para resolver una o más variables de entorno en un servidor de compilación. Las variables de entorno se leen en el agente de compilación si esta actividad está dentro de una secuencia AgentScope; de lo contrario, se leen en el controlador de compilación.

Sugerencia

Puede obtener bits de datos útiles de las variables de entorno de TF_BUILD.Por ejemplo, puede obtener el directorio de archivos binarios, que es el directorio desde el cual el proceso de compilación copia los archivos de salida en la ubicación de ensayo.Vea Variables de entorno de Team Foundation Build.

Resultado de ExpandEnvironmentVariables (String) propiedad

Devuelve el resultado de la compilación. Por ejemplo: The temp directory on machine BLDSERV3 is C:\windows\SERVIC~2\NETWOR~1\AppData\Local\Temp.

Propiedades de los argumentos de ExpandEnvironmentVariables

  • Entrada (String): debe especificar la cadena que contiene las variables de entorno que desea resolver. Debe aplicar formato a todas las variables de entorno especificando una propiedad MSBuild en lugar de usar la notación del símbolo de porcentaje de Windows. Por ejemplo: "The temporary directory on machine $(COMPUTERNAME) is $(TEMP).".

  • AdditionalVariables (IDictionary<String,String>): puede especificar un objeto IDictionary que contenga cualquier variable adicional (como las claves) que desea resolver con sus correspondientes valores.

Volver al principio

Probar variables con valores null

IsNotNull<T>

Utilice la actividad IsNotNull<T> para probar si una expresión de Visual Basic, como una variable en uso, proporcionada en la propiedad Value (Object) no es Null. El resultado de la prueba se devuelve en la propiedad Boolean Result.

IsNull<T>

Utilice la actividad IsNull<T> para probar si una expresión de Visual Basic, como una variable en uso, proporcionada en la propiedad Value (Object) es Null. El resultado de la prueba se devuelve en la propiedad Boolean Result.

Obtener rutas de acceso a archivos del área de trabajo

Cada compilación tiene un área de trabajo de control de versiones que está definida en la pestaña Área de trabajo de la definición de compilación. El área de trabajo proporciona a la compilación acceso a los archivos de código fuente y a cualquier otro archivo que esté en el sistema de control de versiones. Team Foundation Build proporciona dos actividades que se pueden utilizar para trabajar con archivos en el área de trabajo de compilación: ConvertWorkspaceItem y ConvertWorkspaceItems.

Para obtener más información sobre las áreas de trabajo de compilación, vea Crear o modificar una definición de compilación.

Sugerencia

Para obtener instrucciones paso a paso sobre cómo utilizar la actividad ConvertWorkspaceItem en un escenario habitual, vea Controlar dónde ubica los binarios el sistema de compilación.

Obtener la ruta de acceso a un archivo de un área de trabajo (actividad ConvertWorkspaceItem)

Utilice la actividad ConvertWorkspaceItem para convertir una ruta de acceso del servidor en una ruta de acceso local del agente de compilación o para convertir una ruta de acceso local del agente de compilación en una ruta de acceso del servidor.

ConvertWorkspaceItem Result (String) propiedad

Devuelve la ruta de acceso convertida

Propiedades de los argumentos de ConvertWorkspaceItem

  • Entrada (String): debe proporcionar el valor de la ruta de acceso que desea convertir.

  • Área de trabajo (Workspace): debe proporcionar una referencia al Workspace que contiene el archivo. En la mayoría de los casos, debe establecer esta propiedad en la variable que se inicializa en la propiedad Resultado de la actividad CreateWorkspace. Si crea un proceso de compilación basado en DefaultTemplate.xaml, le conviene utilizar la variable Workspace.

  • Dirección

    • Convierte una ruta de acceso del servidor en una ruta de acceso local: en la propiedad Dirección, seleccione ServerToLocal y, a continuación, especifique la ruta de acceso al archivo del servidor en la propiedad Entrada (String).

      Por ejemplo, tal vez los miembros del equipo almacenen utilidades compartidas en el directorio siguiente: $/OurTeam/BuildProcess/Util. Puede crear un proceso de compilación personalizado que ejecute la utilidad ScanBinaries.exe después de que los binarios se hayan compilado. Si $/OurTeam/BuildProcess/Util se asigna en la pestaña Área de trabajo de la definición de compilación, puede especificar $/OurTeam/BuildProcess/Util/ScanBinaries.exe en la propiedad Entrada para obtener la ruta de acceso local de la utilidad de la propiedad Resultado (String).

    • Convertir una ruta de acceso local en una ruta de acceso de servidor: en la propiedad Dirección, seleccione ServerToLocal y, a continuación, especifique la ruta de acceso al agente del compilador en la propiedad Entrada ().

Obtener las rutas de acceso a los archivos de un área de trabajo (actividad ConvertWorkspaceItems)

Utilice la actividad ConvertWorkspaceItems para convertir rutas de acceso del servidor en rutas de acceso del agente de compilación o para convertir rutas de acceso local del agente de compilación en rutas de acceso del servidor.

ConvertWorkspaceItems Result (IList<String>) propiedad

Devuelve los valores de la ruta de acceso convertidos.

Propiedades de los argumentos de ConvertWorkspaceItems

  • Entrada (IEnumerable<String>): debe proporcionar los valores de ruta de acceso que desea convertir.

  • Área de trabajo (Workspace): debe proporcionar una referencia al Workspace que contiene los archivos. En la mayoría de los casos, debe establecer esta propiedad en la variable que se inicializa en la propiedad Resultado de la actividad CreateWorkspace.

    Sugerencia

    Si crea un proceso de compilación basado en DefaultTemplate.xaml, le conviene utilizar la variable Workspace.

  • Dirección: seleccione uno de los siguientes valores:

    • Seleccione ServerToLocal si especifica una colección de valores de ruta de acceso del servidor en la propiedad Entrada y desea que la propiedad Resultado devuelva una lista de valores de ruta de acceso local.

    • Seleccione LocalToServer si especifica una colección de valores de ruta de acceso local en la propiedad Entrada y desea que la propiedad Resultado devuelva una lista de valores de ruta de acceso de servidor.

Trabajar con los directorios

Puede trabajar con los directorios utilizando varias actividades en Team Foundation Build.

Sugerencia

Si tiene que trabajar con los directorios que forman parte del área de trabajo del control de versiones de la compilación, utilice las actividades del área de trabajo.Para obtener más información, vea Obtener las rutas de acceso a los archivos del área de trabajo.

Crear un directorio (actividad CreateDirectory)

Utilice la actividad CreateDirectory para crear un directorio cuyo nombre se especifica en la propiedad Directorio (String).

Copiar un directorio (actividad CopyDirectory)

Utilice la actividad CopyDirectory de forma recursiva para copiar todo el contenido de un directorio, que se especifica en la propiedad Origen (String), en el directorio que se especifica en la propiedad Destino (String). El directorio especificado en la propiedad Destino debe estar creado. Los directorios o los subdirectorios vacíos no se copian.

Eliminar un directorio (actividad DeleteDirectory)

Utilice la actividad DeleteDirectory para eliminar un directorio cuyo nombre se especifica en la propiedad Directorio (String). Si el directorio que está eliminando contiene subdirectorios, debe establecer la propiedad Recursivo (Boolean) en True; de lo contrario, la compilación no se realizará correctamente.

Obtener la ruta de acceso al directorio de trabajo del agente de compilación (actividad GetBuildDirectory)

Utilice la actividad GetBuildDirectory para obtener la ruta de acceso literal al directorio de trabajo del agente de compilación de la propiedad Resultado (String). Solo puede utilizar esta actividad dentro de una actividad AgentScope.

Volver al principio

Manipular datos de ruta de acceso

GetCommonLocalPath (Actividad)

Utilice la actividad GetCommonLocalPath para obtener la ruta de acceso a la carpeta principal común de menor nivel de una o varias carpetas locales. Por ejemplo, si se especifica LocalItems (IEnumerable<String>) de la siguiente manera:

{“c:\Code\Fabrikam-3\TestScrum\Main\FabrikamFiber.CallCenter”, “c:\Code\Fabrikam-3\TestScrum\Main\lib”}

Result (String) devolverá:

c:\Code\Fabrikam-3\TestScrum\Main

GetCommonServerPath (Actividad)

Utilice la actividad GetCommonServerPath para obtener la ruta de acceso a la carpeta principal común de menor nivel de una o varias carpetas locales. Por ejemplo, si se especifica ServerItems (IEnumerable<String>) de la siguiente manera:

{“$/TestScrum/Main/FabrikamFiber.CallCenter”, “$/TestScrum/Main/lib”}

Result (String) devolverá:

$/TestScrum/Main

Descargar archivos que no están en un área de trabajo

Utilice la actividad DownloadFiles para descargar uno o varios archivos. Omita la actividad DownloadFile.

DownloadFiles (Actividad)

Utilice la actividad DownloadFiles para descargar uno o varios archivos del sistema de control de versiones.

Sugerencia

Si los archivos que desea descargar están en el área de trabajo de compilación, probablemente tenga acceso utilizando la actividad ConvertWorkspaceItem.

Propiedades de los argumentos de DownloadFiles

  • LocalPath (String) debe especificar un valor:

    • Si está descargando un único archivo, especifique la ruta de acceso local y el nombre que desea asignar a la copia local del archivo, por ejemplo, "c:\Docs\readme.txt".

    • Si está descargando varios archivos, especifique la ruta de acceso local al directorio que desea usar, por ejemplo, "c:\Docs\".

  • ServerPath (String) debe especificar un valor:

    • Si está descargando un único archivo, especifique la ruta de acceso del servidor y el nombre del archivo que se está descargando; por ejemplo, "$/Docs/readme.txt".

    • Si está descargando varios archivos, especifique la ruta de acceso del servidor al directorio que contiene los archivos que va a descargar, por ejemplo, "$/Docs/".

  • Recursion (RecursionType):

    • OneLevel: descarga el archivo o los archivos en el directorio especificado en la propiedad ServerPath.

    • Full: descarga los archivos del directorio especificado en la propiedad ServerPath y los archivos de los subdirectorios.

  • Version (String): puede especificar versionspec. Para descargar la versión actual, deje esta propiedad establecida en Microsoft.TeamFoundation.VersionControl.Client.VersionSpec.Latest.DisplayString. Para obtener más información sobre versionspecs, vea Sintaxis de línea de comandos.

  • DeletionID (Int32): debe especificar esta propiedad únicamente si va a descargar un archivo que se ha eliminado del control de versiones. Puede obtener este valor interactivamente escribiendo tf dir /deleted en el símbolo del sistema. (Para obtener más información, vea Dir Command). Sin embargo, Team Foundation Build no proporciona una actividad integrada para obtener DeletionID. Para utilizar esta propiedad, debe obtener o crear una actividad personalizada que proporcione esta funcionalidad.

Volver al principio

DownloadFile (Actividad)

Omita la actividad DownloadFile. La actividad DownloadFiles es la manera más fácil de descargar uno o varios archivos.

Buscar archivos (actividad FindMatchingFiles)

Utilice la actividad FindMatchingFiles para buscar archivos. Especifique los criterios de búsqueda en la propiedad MatchPattern (String). En esta propiedad, puede especificar un argumento con los elementos siguientes:

  • Sintaxis compatible con el argumento searchPattern del método Directory GetFiles(String, String).

  • ** para especificar una búsqueda recursiva. Por ejemplo:

    • Para buscar archivos de texto en el directorio de origen, especifique algo similar al siguiente valor de la propiedad MatchPattern: String.Format("{0}\**\*.txt", SourcesDirectory).

    • Para buscar archivos de texto en uno o varios subdirectorios en el directorio de origen que se denominan txtfiles, especifique algo similar al siguiente valor de la propiedad MatchPattern: String.Format("{0}\**\txtfiles\*.txt", SourcesDirectory).

Se recopila el resultado de la operación en la propiedad Resultado (IEnumerable<String>).

Escribir advertencias, errores, mensajes y otros datos en el registro de compilación

WriteCustomSummaryInformation

Utilice la actividad WriteCustomSummaryInformation para escribir un mensaje en el resumen de compilación, que se muestra a los usuarios en la ventana de resultados de compilación.

Propiedades de los argumentos de WriteCustomSummaryInformation

  • Message (String): debe especificar el mensaje que desea mostrar en el resumen de la compilación.

    Puede incluir hipervínculos en el mensaje utilizando una de las siguientes sintaxis:

    [link text](url)
    [link text] (url)
    

    Por ejemplo:

    For the latest operation status, see [Fabrikam Fiber Ops] (http://intranet.fabrikam.com/ops/status).
    
  • SectionDisplayName (String): debe especificar el nombre de la sección en la que desea que aparezca el mensaje. Si hay varias instancias de WriteCustomSummaryInformation con el mismo valor de SectionKey que especifican diferentes valores de SectionDisplayName, el sistema utilizará el valor de SectionDisplayName de la primera instancia de la plantilla de proceso de compilación.

  • SectionKey (String): debe especificar un identificador para el nombre de la sección en la que desea que aparezca el mensaje. El valor que se especifique debe cumplir las reglas descritas en NameProperty.

    Por ejemplo, si se implementan dos instancias de WriteCustomSummaryInformation con el valor de SectionKey establecido en “MySection”, cuando se procese la compilación, ambos mensajes aparecerán en la misma sección del resumen de compilación.

  • SectionPriority (Int32): puede especificar la prioridad de la sección, que a su vez determina la posición relativa de la sección en el resumen de compilación. Cuanto menor sea el valor, más alta aparecerá la sección en el resumen. Si hay varias instancias de WriteCustomSummaryInformation con el mismo valor de SectionKey que especifican diferentes valores de SectionPriority, el sistema utilizará el valor de SectionPriority de la primera instancia de la plantilla de proceso de compilación.

Volver al principio

WriteBuildMessage (Actividad)

Utilice la actividad WriteBuildMessage para escribir un mensaje informativo en el registro de compilación. Debe especificar el mensaje en la propiedad Mensaje (String). También puede indicar la importancia del mensaje modificando el valor de la propiedad Importancia (BuildMessageImportance).

Sugerencia

  • Los usuarios de su proceso de compilación pueden confiar en el filtrado de nivel de detalle para reducir la sobrecarga de información tanto con respecto a lo que deben ver como a los datos que están almacenados en el almacén de datos.Para que este filtrado sea más eficaz use un enfoque coherente para establecer la propiedad Importancia de los mensajes de la compilación.Para obtener más información, vea Administrar información sobre las compilaciones y controlar el nivel de detalle.

  • Si usa la configuración predeterminada, el mensaje no se escribirá en el registro de compilación.Para resolver este problema, siga uno de estos pasos:

    • Establezca la propiedad WriteBuildMessage Importancia en Microsoft.TeamFoundation.Build.Client.BuildMessageImportance.High.

    • En la pestaña Proceso de la definición de compilación, establezca el parámetro de proceso Nivel de detalle de registro en Detailed o Diagnostic.

WriteBuildWarning (Actividad)

Utilice la actividad WriteBuildWarning para escribir un mensaje de advertencia en el registro de compilación. Las advertencias aparecen con un signo de exclamación amarillo en la ventana de resultados de compilación. Debe especificar el mensaje en la propiedad Mensaje (String).

Se registran las advertencias de compilación solo si se establece el nivel de detalle en mínimo o superior. Para obtener más información, vea Administrar información sobre las compilaciones y controlar el nivel de detalle.

WriteBuildError (Actividad)

Utilice la actividad WriteBuildError para escribir un mensaje de error de compilación en el registro de compilación. Los errores se muestran con un signo de exclamación rojo en la ventana de resultados de compilación. Cuando se escribe un error en el registro de compilación, la compilación se clasifica como Partially Succeeded en el mejor de los casos. Debe especificar el mensaje en la propiedad Mensaje (String).

Los errores de compilación se registran siempre, independientemente de la configuración de nivel de detalle. Para obtener más información, vea Administrar información sobre las compilaciones y controlar el nivel de detalle.

WriteBuildTestError (Actividad)

Utilice la actividad WriteBuildTestError para escribir un mensaje de error de prueba en el registro de compilación. Los errores se muestran con un signo de exclamación rojo en la ventana de resultados de compilación. Cuando se escribe un error en el registro de compilación, la compilación se clasifica como Partially Succeeded en el mejor de los casos. Debe especificar el mensaje en la propiedad Mensaje (String).

Los errores de compilación se registran siempre, independientemente de la configuración de nivel de detalle. Para obtener más información, vea Administrar información sobre las compilaciones y controlar el nivel de detalle.

WriteBuildInformation<T> (Actividad)

Utilice la actividad WriteBuildInformation<T> para colocar un objeto en el registro de compilación. Cuando un usuario ve el inicio de sesión en la ventana de resultados de la compilación, el objeto se representan mediante la reflexión.

Propiedades de los argumentos de WriteBuildInformation<T>

  • Valor (Object): debe especificar el objeto que desea incluir en el registro de compilación. Para que el objeto se represente en la ventana de salida de la compilación, el objeto debe implementar IBuildInformationNode y establecer Type en uno de los siguientes valores de InformationTypes:

    • ActivityProperties

    • ActivityTracking

    • AgentScopeActivityTracking

    • BuildError

    • BuildMessage

    • BuildProject

    • BuildStep

    • BuildWarning

    • ExternalLink

    • OpenedWorkItem

  • ParentToBuildDetail: puede especificar False para que el elemento primario de este objeto sea el control principal de esta actividad o puede especificar True para que el control principal sea el objeto IBuildDetail.

    Un efecto de esta propiedad es el modo en que la información aparece en la ventana de resultados de la compilación. Si especifica False, se aplica sangría y se alinea con la salida de otras actividades que están antes y después de la actividad WriteBuildInformation<T> y que están en el mismo nivel. Si especifica True, no se aplica sangría a la información.

Volver al principio

Escribir metadatos en el almacén de datos

Puede escribir metadatos de la compilación en el almacén de datos:

  • Escriba el número de compilación (actividad UpdateBuildNumber)

  • Escriba los puntos de datos clave de la compilación (actividad SetBuildProperties)

Sugerencia

Si estas actividades no admiten los metadatos que desea escribir, use la actividad GetBuildDetail para obtener una referencia al objeto IBuildDetail y, a continuación, use esa referencia para asignar los datos directamente al objeto.

Escribir el número de compilación (actividad UpdateBuildNumber)

Utilice la actividad UpdateBuildNumber para establecer el número o el nombre de la compilación. Esta actividad lleva a cabo los pasos siguientes:

  1. Construye un número de compilación que se basa en una expresión que determina el formato del número de compilación. Normalmente el proceso de compilación acepta esta expresión de un argumento de flujo de trabajo, proporcionado por un parámetro de la pestaña Proceso de una definición de compilación.

  2. Establece el número o el nombre de la compilación escribiendo el valor resultante en la propiedad BuildNumber.

UpdateBuildNumber Result (String) propiedad

Resultado: devuelve el nuevo valor de BuildNumber.

Propiedades de UpdateBuildNumber

Volver al principio

Escribir los puntos de datos clave de la compilación (actividad SetBuildProperties)

Utilice SetBuildProperties para escribir los puntos de datos clave en el objeto IBuildDetail, que administra el almacenamiento de datos sobre cada compilación en el almacén de datos. Muchos de estos datos se muestran al usuario en la ventana de resultados de la compilación.

Propiedades de SetBuildProperties

  • PropertiesToSet: debe activar las casillas de los nombres de las propiedades que desea establecer.

  • BuildNumber (String): puede establecer BuildNumber de la compilación, que puede considerar el nombre de la compilación.

    Sugerencia

    Si desea establecer este valor en función de la configuración definida por el usuario en la pestaña Proceso de la definición de compilación, debe utilizar la actividad UpdateBuildNumber en lugar de esta propiedad.

  • CompilationStatus (BuildPhaseStatus): puede establecer el estado de la compilación (CompilationStatus). (La actividad MSBuild también establece este valor automáticamente).

  • DropLocation (String): puede registrar la ubicación de destino en la propiedad DropLocation.

    Nota

    Al establecer esta propiedad, no se crea realmente la ubicación de destino.En su lugar, se utiliza esta propiedad para guardar en el almacén de datos la ubicación de la carpeta de entrega, que normalmente se crea mediante la actividad CreateDirectory.

  • KeepForever (Boolean): puede establecer la propiedad KeepForever en True si desea reemplazar la configuración en la pestaña Directiva de retención de la definición de compilación y mantener la compilación completada para siempre.

  • LabelName (String): establezca la propiedad LabelName para registrar la etiqueta que se usaba para marcar esta compilación en los archivos de código fuente en el control de versiones. Esta propiedad se establece normalmente para que coincida con el valor de la propiedad Nombre de la actividad LabelWorkspace.

    Importante

    Team Foundation Build requiere estos datos para asociar el conjunto de cambios y los elementos de trabajo con las compilaciones.Si no proporciona estos datos, la actividad AssociateChangesetsAndWorkItems producirá un error.

  • LogLocation (String): puede utilizar el registro de la propiedad LogLocation la ruta de acceso UNC a la carpeta en la que el proceso de compilación pone el archivo de registro.

    Nota

    No es probable que necesite utilizar esta propiedad en su proceso de compilación personalizado.Esta propiedad está pensada principalmente para uso del archivo UpgradeTemplate.xaml por compatibilidad con los procesos de compilación heredados.

  • Calidad (String): puede registrar la calidad de compilación en la propiedad Quality.

  • SourceGetVersion (String): puede utilizar la propiedad SourceGetVersion para registrar la especificación de versión para la que se recupera el código fuente para esta compilación.

  • Estado (BuildStatus): puede registrar el estado general de la compilación en la propiedad Status. Por ejemplo, puede utilizar esta propiedad para indicar si la compilación se realizó correctamente o no.

  • TestStatus (BuildPhaseStatus): utilice la propiedad TestStatus para registrar el estado total de pruebas ejecutadas en esta compilación. Por ejemplo, puede utilizar esta propiedad para indicar si las pruebas que ejecutó en esta compilación se completaron correctamente o con errores.

Volver al principio

Controlar el proceso de compilación

Puede utilizar las actividades de Team Foundation Build para controlar el proceso de compilación de las siguientes maneras:

  • Ejecutar las actividades del agente de compilación

  • Usar una estructura de exclusión mutua con nombre para implementar un proceso seguro para subprocesos

  • Limitar las secciones del proceso de compilación en función de la razón (el desencadenador)

Ejecutar actividades en el agente de compilación (actividad AgentScope)

Utilice la actividad AgentScope para agregar las partes del proceso de compilación que desea ejecutar en el agente de compilación.

Propiedades de los argumentos de AgentScope

  • Selección del agente

    • MaxWaitTime (TimeSpan): puede especificar el tiempo máximo que el proceso de compilación espera a que un agente de compilación esté disponible. Puede escribir un valor en formato hh: mm: ss. Por ejemplo, se producirá un error de tiempo de espera en la compilación si especifica un valor de 01:30:45 y la compilación no se asigna a ningún agente de compilación después de 1 hora, 30 minutos y 45 segundos. Especifique el valor 00:00:00 si desea que el controlador de compilación tenga tiempo ilimitado para encontrar un agente de compilación que procese esta definición de compilación.

      Importante

      Puede evitar hacer una copia de seguridad de la cola de compilación especificando un valor distinto de cero razonable en la propiedad MaxWaitTime.

    • ReservationSpec (AgentReservationSpec): puede restringir el tipo de agente de compilación que procesará las actividades que esta actividad contiene. Por ejemplo, puede especificar que solo se utilicen los agentes de compilación que tengan determinada etiqueta para procesar las actividades dentro de la actividad AgentScope.

  • Execution

    • MaxExecutionTime (TimeSpan): puede especificar el tiempo máximo permitido para esta actividad AgentScope. Puede escribir un valor en formato hh: mm: ss. Por ejemplo, se producirá un error de tiempo de espera en la compilación si especifica un valor de 04:30:15 y el agente de compilación no ha completado su trabajo después de 4 horas, 30 minutos y 15 segundos. Especifique el valor 00:00:00 si desea que el agente de compilación tenga tiempo ilimitado para procesar la compilación.

      Sugerencia

      Puede evitar hacer una copia de seguridad de la cola de compilación especificando un valor distinto de cero razonable en la propiedad MaxExecutionTime.

  • Ámbito

    • DataToIgnore: omita esta propiedad.

Volver al principio

Usar una estructura de exclusión mutua con nombre para implementar un proceso seguro para subprocesos (actividad SharedResourceScope)

Utilice la actividad SharedResourceScope para implementar una estructura mutex (exclusión mutua) con nombre para asegurarse de que el segmento del proceso de compilación insertado es seguro para subprocesos.

Un uso común de esta actividad consiste en agregar las partes de un proceso de compilación que debe tener acceso a un recurso compartido al que solo se puede tener acceso mediante un proceso cada vez. Por ejemplo, tal vez desee que sus compilaciones escriban, en orden secuencial, en un solo archivo de texto o en un recurso compartido de archivos. Para asegurarse de que este tipo de proceso funciona correctamente, debe implementarlo dentro de una actividad SharedResourceScope.

Encontrará otro ejemplo en DefaultTemplate.xaml, en el que la llamada de la actividad PublishSymbols se inserta en una actividad SharedResourceScope:

  1. Secuencia (Sequence) >

  2. Ejecutar en el agente (AgentScope) >

  3. Intentar compilar, probar y asociar conjuntos de cambios y elementos de trabajo (TryCatch [Try]) >

  4. Secuencia (Sequence) >

  5. Obtener pruebas afectadas, indizar orígenes y publicar símbolos (Parallel) >

  6. Si SourceAndSymbolServerSettings.IndexSources o SourceAndSymbolServerSettings.HasSymbolStorePath (If [Then]) >

  7. Indizar orígenes y publicar símbolos para las compilaciones de tipo Triggered (InvokeForReason) >

  8. Si SourceAndSymbolServerSettings.HasSymbolStorePath (If [Then]) >

  9. Intentar publicar símbolos (TryCatch [Try]) >

  10. Sincronizar el acceso al almacén de símbolos (SharedResourceScope) >

  11. Publicar símbolos (PublishSymbols)

Propiedades de los argumentos de SharedResourceScope

  • ResourceName (String): debe especificar un valor. Todas las instancias de las actividades SharedResourceScope se ejecutan de una en una si tienen el mismo valor de ResourceName en la colección de proyectos de equipo (incluso si están en diferentes plantillas de definición de compilación).

  • MaxExecutionTime (TimeSpan): puede especificar el tiempo máximo permitido para la actividad SharedResourceScope. Puede escribir un valor en formato hh: mm: ss. Por ejemplo, la compilación no se realizará correctamente y dará un error de tiempo de espera si especifica un valor de 04:30: 15 y la actividad SharedResourceScope no se ha completado después de 4 horas, 30 minutos y 15 segundos. Especifique el valor 00:00: 00 si desea dar un plazo de tiempo ilimitado para procesar la actividad SharedResourceScope.

    Sugerencia

    Puede evitar hacer una copia de seguridad de la cola de compilación especificando un valor distinto de cero razonable en la propiedad MaxExecutionTime.

  • MaxWaitTime (TimeSpan): puede especificar el tiempo máximo que el proceso de compilación espera en la cola para procesar la actividad SharedResourceScope. Puede escribir un valor en formato hh: mm: ss. Por ejemplo, la compilación no se realizará correctamente y dará un error de tiempo de espera si especifica un valor de 01:30: 45 y la actividad SharedResourceScope no se ha procesado después de 1 hora, 30 minutos y 45 segundos. Especifique el valor 00:00: 00 si desea permitir que el proceso de compilación tenga tiempo ilimitado para esperar en la cola.

    Sugerencia

    Puede evitar hacer una copia de seguridad de la cola de compilación especificando un valor distinto de cero razonable en la propiedad MaxWaitTime.

Volver al principio

Limitar las secciones del proceso de compilación en función del motivo (desencadenador) (actividad InvokeForReason)

Utilice la actividad InvokeForReason para agregar un segmento del proceso de compilación que desea ejecutar únicamente a las compilaciones que se han ejecutado por una razón determinada. Las razones de compilación se establecen normalmente por el desencadenador que el usuario selecciona en la pestaña Desencadenador de la definición de compilación. Puede especificar, en la propiedad Motivo, uno o varios valores de la razón que desea habilitar. Para obtener más información, vea Especificar desencadenadores y razones de compilación.

Volver al principio

Compilar, probar y realizar otras tareas

Puede utilizar las actividades de Team Foundation Build para compilar archivos binarios, ejecutar pruebas y realizar otras tareas:

  • Usar MSBuild para compilar los archivos binarios, ejecutar el análisis de código y realizar otras tareas

  • Ejecutar pruebas

  • Obtener una lista de las pruebas a las que afecta esta compilación

Usar MSBuild para compilar archivos binarios, ejecutar análisis de código y realizar otras tareas (actividad MSBuild)

Utilice la actividad MSBuild para compilar los binarios, ejecutar el análisis de código y aprovechar cualquier otra funcionalidad que MSBuild proporcione.

Resultado de MSBuild

Ninguna propiedad de esta actividad devuelve un resultado. Sin embargo, esta actividad establece CompilationStatus en Failed si se registran errores de compilación.

Propiedades de los argumentos de MSBuild

  • AdditionalVCOverrides (String): si establece GenerateVsPropsFile en True, el contenido de esta propiedad se incrustará en el archivo .vsprops generado.

  • CommandLineArguments (String): puede especificar los argumentos de la línea de comandos que desea pasar a MSBuild.

  • Configuración (String): puede especificar la configuración que se va a compilar. Por ejemplo: “debug” o “release”.

  • GenerateVSPropsFile (Boolean): si esta propiedad está establecida en True, MSBuild genera un archivo estándar de .vsprops para pasar a los proyectos de C++. Este archivo incluirá el directorio de salida para los proyectos de C++ y todo lo que se haya especificado en la propiedad AdditionalVCOverrides.

  • Archivo de registro (String): puede especificar el nombre del archivo de registro que MSBuild debe crear.

  • LogFileDropLocation (String): puede especificar la ruta UNC completa al directorio donde desee que MSBuild coloque el archivo de registro.

  • MaxProcesses (Int32): puede especificar el número máximo de procesos que crea MSBuild.

  • OutDir (String) puede especificar el directorio donde MSBuild coloca los binarios compilados. Para obtener más información, vea Controlar dónde ubica los binarios el sistema de compilación.

  • Plataforma (String): puede especificar la plataforma en la que MSBuild compila. Por ejemplo: “Any CPU”, “x86” o “x64”.

  • Proyecto (String): puede especificar la solución o el proyecto de código que MSBuild compila.

  • ResponseFile (String): puede especificar el archivo de respuesta que utiliza MSBuild.

  • RunCodeAnalysis (CodeAnalysisOption): puede especificar si el análisis de código se debe ejecutar siempre, nunca o en función de la configuración del proyecto.

  • Targets (IEnumerable <String>): puede especificar los destinos que se van a compilar.

  • TargetsNotLogged (IEnumerable< String>): puede especificar los destinos para los que no deben registrarse los eventos ProjectStarted.

  • ToolPath (String): puede especificar la ruta de acceso a la herramienta.

  • ToolPlatform (ToolPlatform): puede especificar la plataforma para la herramienta. Especifique Microsoft.TeamFoundation.Build.Workflow.Activities.ToolPlatform.Auto para detectar la plataforma basada en el sistema operativo actual.

  • Nivel de detalle (BuildVerbosity): Puede especificar el nivel de detalle del registro que genera MSBuild.

Para obtener más información sobre muchas opciones de MSBuild a las que afectan las propiedades de MSBuild, vea Referencia de la línea de comandos de MSBuild.

Volver al principio

Ejecutar pruebas

Puede ejecutar pruebas utilizando la actividad RunTests o la actividad MSTest.

Ejecutar pruebas mediante la actividad RunTests

Utilice la actividad RunTests si desea utilizar el Ejecutor de pruebas de Microsoft Agile para ejecutar pruebas. Si su archivo compila y comprueba archivos binarios con plataformas que no son compatibles, debe ejecutar esta actividad por separado con los ensamblados de cada plataforma.

Para obtener más información, vea Ejecutar pruebas en el proceso de compilación.

Propiedades básicas de RunTests

  • TestSources (IEnumerable<String>): debe especificar una lista de los archivos de ensamblado que contienen las pruebas que desea ejecutar.

  • ExecutionPlatform (ExecutionPlatformType): puede especificar la plataforma de los archivos binarios que desea probar. Para obtener más información, vea Ejecutor de pruebas de Agile.

  • ExecutionTimeout (Int32): puede especificar el tiempo máximo que el proceso de compilación debe esperar hasta que se complete la serie de pruebas. Especifique el valor 0 si desea asignar a la actividad RunTests un tiempo ilimitado para ejecutar las pruebas.

  • KeepAlive (Boolean): puede establecer esta propiedad en True si desea que el proceso del Ejecutor de pruebas de Agile continúe ejecutándose en el agente de compilación después de que se complete la actividad RunTests.

  • RunSettings (String): no documentado.

  • TestCaseFilter (String): puede utilizar esta propiedad para ejecutar un subconjunto de casos de prueba. Para obtener más información, vea Especificar criterios para la serie de pruebas en el Ejecutor de pruebas de Visual Studio.

  • UpdateFrequency (Int32): no documentado.

  • UpdateFrequencyTimeout (Int32): no documentado.

Propiedades de publicación de RunTests

Puede utilizar las siguientes propiedades para publicar los resultados de pruebas en la colección de proyectos de equipo:

  • PublishResults (Boolean): debe establecer esta propiedad en True si desea publicar los resultados de pruebas.

  • Tipo (String): puede especificar el tipo de compilación en la que ejecutó las pruebas cuyos resultados desea publicar.

  • Plataforma (String): puede especificar el plataforma de compilación en la que ejecutó las pruebas cuyos resultados desea publicar.

  • RunName (String): puede especificar el nombre de la serie de pruebas. Los clientes del proceso de compilación verán este nombre en el resumen de la ventana de resultados de compilación. Si no se proporciona ningún nombre, el sistema generará uno automáticamente.

Delegados

  • OnTestCompleted: no documentado.

  • OnTestRunCompleted: no documentado.

Volver al principio

Ejecutar pruebas con la actividad MSTest

Utilice esta actividad para ejecutar pruebas utilizando MSTest.exe.

Propiedades básicas de MSTest

Para empezar, decida cómo desea ejecutar las pruebas y, a continuación, especifique los valores para las propiedades adecuadas.

Propiedades de filtrado MSTest

Puede utilizar las siguientes propiedades para filtrar qué pruebas se ejecutan:

  • Categoría (String): puede filtrar las pruebas en función de sus categorías. Esta propiedad es equivalente a la opción /category del comando MSTest.exe. Para obtener más información, vea Opciones de línea de comandos de MSTest.exe (/category) y Definir categorías de listas para agrupar las pruebas.

  • MaxPriority (Int32): puede especificar la prioridad máxima de las pruebas que desea ejecutar. Solo se ejecutarán las pruebas cuya prioridad es menor o igual que este valor. Debe especificar un entero positivo que sea igual o mayor que la propiedad MinPriority o especificar -1 si no desea especificar una prioridad máxima.

    Sugerencia

    Si ha asignado prioridades a las pruebas, las propiedades MinPriority y MaxPriority pueden ser un mecanismo importante para definir un equilibrio entre las pruebas completas y compilaciones más rápidas.

  • MinPriority (Int32): puede especificar la prioridad mínima de las pruebas que desea ejecutar. Solo se ejecutarán las pruebas cuya prioridad es mayor o igual que este valor. Debe especificar un entero positivo que sea igual o menor que la propiedad MaxPriority o especificar -1 si no desea especificar una prioridad mínima.

  • TestNames (IEnumerable<String>): puede especificar los nombres de las pruebas que desea ejecutar. Esta propiedad es equivalente a la opción /test del comando MSTest.exe. Para obtener más información, vea Opciones de línea de comandos de MSTest.exe (/test).

Propiedades de publicación de MSTest

Puede utilizar las siguientes propiedades para publicar los resultados de pruebas en la colección de proyectos de equipo:

  • Publicar (Boolean): debe establecer esta propiedad en True si desea publicar los resultados de pruebas.

  • Tipo (String): puede especificar el tipo de compilación en la que ejecutó las pruebas cuyos resultados desea publicar. Esta propiedad es equivalente a la opción /flavor del comando MSTest.exe. Para obtener más información, vea Opciones de la línea de comandos para publicar resultados de pruebas.

  • Plataforma (String): puede especificar el plataforma de compilación en la que ejecutó las pruebas cuyos resultados desea publicar. Esta propiedad es equivalente a la opción /platform del comando MSTest.exe. Para obtener más información, vea Opciones de la línea de comandos para publicar resultados de pruebas.

  • TestConfigId (Int32): puede especificar el identificador de una opción de configuración existente de administración de pruebas que se va a asociar a la prueba cuyos resultados desea publicar. Esta propiedad es equivalente a la opción /testconfigid del comando MSTest.exe. Para obtener más información, ejecute MSTest /? en el símbolo del sistema de Visual Studio.

  • TestConfigName (String): puede especificar el nombre de una opción de configuración existente de administración de pruebas que se va a asociar a la prueba cuyos resultados desea publicar. Esta propiedad es equivalente a la opción /testconfigname del comando MSTest.exe. Para obtener más información, ejecute MSTest /? en el símbolo del sistema de Visual Studio.

Otras propiedades de MSTest

  • CommandLineArguments (String): para obtener información sobre las opciones de la línea de comandos adicionales que se pueden especificar, vea opciones de la línea de comandos para MSTest.exe.

  • PathToResultsFilesRoot (String): puede especificar la raíz de la ruta de acceso al directorio del agente de compilación donde MSTest.exe coloca los archivos de resultados (archivos .trx).

  • ToolPath (String): puede especificar la ruta de acceso al directorio que contiene la versión de MSTest.exe que desea ejecutar. Si no se especifica una ruta de acceso, Team Foundation Build la determina automáticamente basada en los datos de las listas o contenedores de pruebas de las pruebas.

Volver al principio

Obtener una lista de pruebas que afectan a la compilación (actividad GetImpactedTests)

Utilice la actividad GetImpactedTests para identificar los cambios de código en la compilación actual y mostrar una lista de pruebas afectadas por estos cambios. La actividad escribe la lista de pruebas afectadas en el almacén de datos para ayudar a los miembros del equipo de pruebas a determinar qué pruebas deben ejecutar después de que se complete esta compilación. Para obtener más información sobre cómo usar estos datos, vea ¿Qué pruebas se deben ejecutar desde una compilación anterior?.

Nota

Esta actividad no tiene ningún efecto en las compilaciones de protección controlada y compilaciones privadas.

Condiciones necesarias

La actividad GetImpactedTests solo funciona cuando se cumplen las condiciones siguientes:

  • La actividad MSTest se ha ejecutado con un archivo de configuración de pruebas (especificado en la propiedad TestSettings) que recopila los datos de impacto de las pruebas. Puede utilizar el archivo Traceandtestimpact.testsettings, que se genera automáticamente, o puede utilizar otro archivo de configuración de pruebas en el que la casilla Impacto en las pruebas esté activada. Para obtener más información, vea Cómo: Recopilar datos para comprobar qué pruebas se deben ejecutar después de realizar cambios en el código.

  • La actividad GetImpactedTests ha identificado correctamente la compilación anterior. Para obtener más información, vea la siguiente sección.

Cómo la actividad GetImpactedTests identifica la compilación anterior

La actividad GetImpactedTests genera los resultados comparando la compilación actual con la anterior. La actividad identifica la compilación anterior mediante el proceso siguiente:

  1. Si especifica la propiedad BaselineBuildDropLocation, la compilación que generó esos binarios se identifica como la compilación anterior.

  2. Si no se especifica la propiedad BaselineBuildDropLocation, la actividad identifica la compilación anterior buscando en el almacén de datos la compilación más reciente que coincide con todos los criterios siguientes:

    • La compilación tiene el mismo BuildDefinitionUri que la compilación actual.

    • Status de la compilación es Succeeded o PartiallySucceeded.

    • La compilación tiene DropLocation.

    • La compilación no es una compilación de protección controlada ni una compilación privada.

Propiedades del resultado de GetImpactedTests

  • CodeChanges (CodeChangeList): devuelve una lista de los cambios realizados en cada método del código entre esta compilación y la compilación anterior. Los métodos se analizan en el nivel del lenguaje intermedio de Microsoft (MSIL).

  • ImpactedTests (TestList): devuelve una lista de las pruebas afectadas por cambios de código entre la compilación anterior y esta compilación.

Propiedades de los argumentos de GetImpactedTests

  • Varios

    • Compilación: debe proporcionar el objeto IBuildDetail de la compilación. Puede utilizar la actividad GetBuildDetail para obtener una referencia a este objeto.
  • Varios

    • Assemblies (IEnumerable<String>): debe especificar una lista de los ensamblados que desee que esta actividad examine. Normalmente integrará estos ensamblados en esta compilación.

    • AssociatedChangesets (IList < Changeset >): puede especificar los conjuntos de cambios que desee asociar a los resultados de impacto de las pruebas. Es posible que desee especificar los conjuntos de cambios que está compilando. Puede obtener una referencia a estos conjuntos de cambios en la actividad AssociateChangesetsAndWorkItems.

    • BinariesRoot (String): debe especificar la ruta de acceso a los archivos binarios de los que dependen sus ensamblados. Puede obtener este valor utilizando la actividad GetBuildDirectory.

    • Área de trabajo (Workspace): debe proporcionar una referencia al área de trabajo de la compilación. Puede obtener esta referencia de la propiedad Resultado de la actividad CreateWorkspace.

    • BaselineBuildDropLocation (String): puede especificar la ruta de acceso a la carpeta de entrega que contiene la compilación completada que desea que la actividad GetImpactedTests compare con la compilación actual. Si no especifica esta propiedad, la actividad intenta consultar el sistema de compilación de la compilación anterior. Para obtener más información, vea "Cómo la actividad GetImpactedTests identifica la compilación anterior" anteriormente en esta sección.

Volver al principio

Iniciar un proceso (actividad InvokeProcess)

Utilice la actividad InvokeProcess para iniciar un proceso (ejecución un programa) en el servidor de compilación. Esta actividad es esencialmente un contenedor de Start.

InvokeProcess Result (Int32) propiedad

Devuelve ExitCode del proceso.

Propiedades de los argumentos de InvokeProcess

  • Nombre de archivo (String): debe especificar FileName del proceso que desea iniciar (el programa que desea ejecutar). Por ejemplo: %ProgramFiles%\ContosoBuildUtils\MarkBins.exe.

  • Argumentos (String): puede especificar los argumentos de la línea de comandos (Arguments) que desea pasar al proceso.

  • EnvironmentVariables (IDictionary < String,String >): puede especificar las variables de entorno adicionales (EnvironmentVariables) y sus valores.

  • OutputEncoding (Encoding): puede especificar la codificación que se utiliza para leer las secuencias de salida (StandardOutputEncoding) y de errores (RedirectStandardError). En muchos casos, el valor predeterminado es el mejor valor para esta propiedad:

    System.Text.Encoding.GetEncoding(System.Globalization.CultureInfo.InstalledUICulture.TextInfo.OEMCodePage)
    
  • WorkingDirectory (String): puede especificar el directorio de trabajo (WorkingDirectory) en el que desea ejecutar el proceso.

    Por ejemplo, quizá desee ejecutar la utilidad MarkBins.exe en los binarios compilados. Para restringir el ámbito en el que la utilidad se ejecuta, llame a GetBuildDirectory y coloque el resultado en esta propiedad.

Mostrar el resultado y la salida de errores estándar del proceso

  1. En la actividad InvokeProcess haga doble clic en Haga doble clic para verlo.

  2. Arrastre una actividad WriteBuildMessage desde el cuadro de herramientas para que la actividad aparezca bajo Controlar salida estándar y establezca la propiedad WriteBuildMessage Mensaje en stdOutput.

  3. Arrastre una actividad WriteBuildError del Cuadro de herramientas para que aparezca bajo Controlar salida estándar y establezca la propiedad WriteBuildMessage Mensaje en errOutput.

Trabajar con control de versiones

Puede utilizar las actividades de Team Foundation Build para realizar las siguientes tareas de control de versiones:

  • Asociar los conjuntos de cambios y los elementos de trabajo con la compilación

  • Proteger cambios controlados

  • Evaluar las directivas de protección

  • Etiquetar los archivos en el sistema de control de versiones

Asociar conjuntos de cambios y elementos de trabajo con la compilación (actividad AssociateChangesetsAndWorkItems)

Utilice la actividad AssociateChangesetsAndWorkItems para vincular cada compilación completada con todos los conjuntos de cambios que entraron en el código y sus elementos de trabajo asociados.

Cada definición de compilación mantiene su propio registro sobre qué conjuntos de cambios y elementos de trabajo están a la espera de asociarse con la siguiente compilación completada. Por ejemplo, el conjunto de cambios 382 se compila tanto en la compilación A como en la compilación B. La compilación A se pone en la cola y se completa correctamente, pero la compilación B está en cola y producirá un error. El conjunto de cambios 382 está vinculado ahora con la compilación A completada correctamente y la compilación B completada con errores. El conjunto de cambios 382 no se va a vincular a la siguiente compilación A completada, aunque se vinculará a la siguiente compilación B completada.

AssociateChangesetsAndWorkItems Result (IList < Changeset >) propiedad

Devuelve los conjuntos de cambios que se asociaron a la compilación.

Propiedades de los argumentos de AssociateChangesetsAndWorkItems

  • CurrentLabel (String): deje esta propiedad vacía.

  • LastLabel (String): deje esta propiedad vacía.

  • UpdateWorkItems (Boolean): puede establecer el valor de esta propiedad en True si desea rellenar el campo Fixed In de los elementos de trabajo asociados con el número de compilación. De lo contrario, establezca el valor en False.

Volver al principio

Proteger los cambios recopilados (actividad CheckInGatedChanges)

Utilice la actividad CheckInGatedChanges al escribir en el control de versiones los cambios de código que se desencadenó una compilación de protección controlada. Esta actividad también asocia la compilación a los elementos de trabajo asociados al conjuntos de cambios.

Nota

Para funcionar correctamente, esta actividad debe ir después de todas las implementaciones de las actividades MSBuild y MSTest en la plantilla.

CheckInGatedChanges Result (Changeset) propiedad

Devuelve el conjunto de cambios que contiene los cambios que se protegen.

Propiedades de los argumentos de CheckInGatedChanges

  • IgnoreErrors (Boolean): establezca esta propiedad en False para permitir que los archivos se protejan solo si las propiedades de CompilationStatus y TestStatus tienen un valor de Succeeded. Establezca esta propiedad en True para permitir la protección de los archivos sin tener en cuenta los valores de estas propiedades.

    Nota

    Puede usar la actividad SetBuildProperties para establecer las propiedades CompilationStatus y TestStatus.

  • UpdateWorkItems (String): establezca el valor de esta propiedad en True si desea rellenar el campo Corregido de los elementos de trabajo asociados con el número de compilación. En caso contrario, establezca esta propiedad en False.

Volver al principio

Evaluar las directivas de protección (actividad EvaluateCheckInPolicies)

Utilice la actividad de EvaluateCheckInPolicies para trabajar con directivas de protección en el servidor de compilación. Esta actividad ejecuta las directivas de protección que están en vigor para las carpetas que se especifican en la pestaña Área de trabajo de la definición de compilación. La compilación produce un error si no se superan las directivas de protección y la razón de compilación es CheckInShelveset (una compilación de protección controlada) o ValidateShelveset (una compilación privada).

Importante

Las directivas de protección se evalúan en el servidor de compilación, no en el equipo cliente del desarrollador.

El uso más eficaz de esta actividad es exigir el uso de puertas de calidad más seguras usándola con las compilaciones de protección controlada. Si utiliza la actividad de esta manera, el usuario queda bloqueado para omitir las directivas de protección. Esta actividad es muy útil en los siguientes tipos de directivas de protección:

  • La directiva de protección integrada Work Items

  • Directivas de protección personalizadas que están diseñados para evaluarse en el servidor de compilación

Esta actividad no es útil para evaluar las directivas de protección integradas de Builds o Code Analysis, ya que estos procesos se pueden ejecutar con más eficacia en una compilación utilizando directamente las actividades MSBuild y MSTest.

Para obtener más información, vea los siguientes recursos:

Propiedades de los argumentos de EvaluateCheckInPolicies

  • Área de trabajo (Workspace): debe especificar el área de trabajo que se desea evaluar. En la mayoría de los casos, debe establecer esta propiedad en la variable que se inicializa en la propiedad Resultado de la actividad CreateWorkspace. Si crea un proceso de compilación basado en DefaultTemplate.xaml, le conviene utilizar la variable Workspace.

Volver al principio

Etiquetar los archivos en el sistema de control de versiones

Puede etiquetar los archivos mediante las actividades de Team Foundation Build:

  • Etiquetar el código fuente que se está compilando

  • Etiquetar archivos

Etiquetar el código fuente que se está compilando (actividad LabelWorkspace)

Debe etiquetar los archivos de código fuente en el control de versiones para que su equipo pueda identificar qué versión de cada archivo se incluye en una compilación completada concreta. Utilice la actividad LabelWorkspace para incluir este paso en el proceso de compilación.

Propiedades de los argumentos de LabelWorkspace

  • Nombre (String): debe especificar el nombre de la etiqueta.

  • Secundario (LabelChildOption): puede especificar cómo controlar los elementos que ya tienen etiquetas que coinciden con la etiqueta especificada. Esta propiedad es equivalente a la opción /child del comando tf label.

  • Área de trabajo (Workspace): debe proporcionar una referencia al área de trabajo de esta compilación. En la mayoría de los casos, debe establecer esta propiedad en la variable que se inicializa en la propiedad Resultado de la actividad CreateWorkspace. Si crea un proceso de compilación basado en DefaultTemplate.xaml, le conviene utilizar la variable Workspace.

  • Comentario (String): puede especificar un comentario para la etiqueta. Esta propiedad es equivalente a la opción /comment del comando tf label.

  • Ámbito (String): puede especificar un ámbito para la etiqueta. Esta propiedad es equivalente al argumento @scope del comando tf label.

Para obtener más información acerca de los parámetros tf label, vea Label Command (Team Foundation Version Control).

Volver al principio

Etiquetar archivos (actividad LabelSources)

Utilice la actividad LabelSources para etiquetar los archivos en el sistema del control de versiones.

Sugerencia

Con frecuencia se etiquetan los archivos de código fuente que se están compilando más eficazmente con la actividad LabelWorkspace.

Propiedades de los argumentos de LabelSources

  • Elementos (IEnumerable < String >): debe especificar los elementos que desea etiquetar. Cada String equivale a un argumento itemspec del comando tf label.

  • Nombre (String): debe especificar el nombre de la etiqueta.

  • Ámbito (String): debe especificar un ámbito para la etiqueta. Esta propiedad es equivalente al argumento @scope del comando tf label.

  • Recursion (RecursionType): puede especificar Microsoft.TeamFoundation.VersionControl.Client.RecursionType.Full si desea etiquetar todos los archivos de una jerarquía de directorios. En caso contrario, puede especificar Microsoft.TeamFoundation.VersionControl.Client.RecursionType.OneLevel.

  • Versión (String): debe proporcionar la versión de los elementos que desea etiquetar. Esta propiedad es equivalente a la opción /version del comando tf label.

  • Secundario (LabelChildOption): puede especificar cómo controlar los elementos que ya tienen etiquetas que coinciden con la etiqueta especificada. Esta propiedad es equivalente a la opción /child del comando tf label.

  • Comentario (String): puede especificar un comentario para la etiqueta. Esta propiedad es equivalente a la opción /comment del comando tf label.

Para obtener más información acerca de los parámetros tf label, vea Label Command (Team Foundation Version Control).

Volver al principio

Obtener una lista de conjuntos de cambios aplazados (actividad QueryShelvesets)

Utilice la actividad QueryShelvesets para obtener una lista de conjuntos de cambios aplazados que cumplan los criterios. Después podrá utilizar la actividad TfUnshelve para recuperar el contenido de cualquiera de los conjuntos de cambios aplazados.

Resultado de QueryShelvesets (IList<Shelveset>)

Propiedades de los argumentos de QueryShelvesets

TfGet (Actividad)

Esta actividad contiene el comando Get (Comando).

TfResolve (Actividad)

Esta actividad contiene el comando Resolve Command.

TfShelve (Actividad)

Esta actividad contiene el comando Shelve (Comando).

TfUndo (Actividad)

Esta actividad contiene el comando Undo (Comando).

TfUnshelve (Actividad)

Esta actividad contiene el comando Unshelve (Comando).

TfWorkfold (Actividad)

Esta actividad contiene el comando Workfold Command.

Trabajar con elementos de trabajo

Puede trabajar con elementos de trabajo mediante las actividades de Team Foundation Build:

  • Asociar los conjuntos de cambios y los elementos de trabajo con la compilación

  • Crear un elemento de trabajo

Crear un elemento de trabajo (actividad OpenWorkItem)

Utilice la actividad OpenWorkItem para crear un elemento de trabajo.

OpenWorkItem Result (WorkItem) propiedad

Devuelve el nuevo elemento de trabajo.

Propiedades de los argumentos de OpenWorkItem

  • AssignedTo (String): debe especificar la persona a la que va a asignar el elemento de trabajo.

  • Título (String): debe especificar el título del elemento de trabajo.

  • Tipo (String): debe especificar el tipo de elemento de trabajo. Los valores habituales de Tipo incluyen los ejemplos siguientes: “Bug”, “Issue” y “Task”.

  • Comentario (String): puede agregar un comentario al historial del elemento de trabajo.

  • CustomFields (IDictionary<String,String>): puede especificar el valor de uno o varios campos del elemento de trabajo.

Volver al principio

Trabajar con datos de símbolos

Puede trabajar con datos de símbolos mediante dos actividades de Team Foundation Build: IndexSources y PublishSymbols.

Un uso común de estas actividades es habilitar la depuración de IntelliTrace. Si desea habilitar la depuración de IntelliTrace, se debe llamar primero a la actividad IndexSources para preparar los datos de los símbolos y, a continuación, debe llamar a la actividad PublishSymbols para publicar los datos en un almacén de símbolos de SymStore.

Para obtener más información sobre la depuración IntelliTrace, vea Depurar la aplicación grabando la ejecución de código con IntelliTrace.

Incrustar rutas de acceso y versiones de control de versiones en datos de símbolos de los archivos PDB (actividad IndexSources)

Utilice la actividad IndexSources para insertar las rutas de acceso y las versiones del control de versiones en los datos de símbolos de los archivos .pdb.

Propiedades de los argumentos de IndexSources

  • FileList (IEnumerable < String >): debe especificar la ruta de acceso y el nombre completos de cada archivo de símbolos. Puede utilizar la actividad FindMatchingFiles para proporcionar este argumento.

    Puede utilizar ** para especificar una búsqueda recursiva. Por ejemplo, podría llamar a FindMatchingFiles con el siguiente valor en la propiedad MatchPattern: String.Format("{0}\**\*.pdb", BinariesDirectory).

Volver al principio

Publicar símbolos en un almacén de símbolos de SymStore (actividad PublishSymbols)

Utilice la actividad PublishSymbols para publicar los datos de símbolos en los archivos PDB de un almacén de símbolos de SymStore. Esta actividad es esencialmente un contenedor de SymStore.exe. Para obtener información sobre los almacenes de símbolos SymStore y cómo preparar uno, vea Indizar y publicar datos de símbolos.

Importante

Los datos se pueden dañar si varias compilaciones simultáneas intentan publicar en el mismo recurso compartido de archivos de símbolos.Para reducir este riesgo, debe llamar a esta actividad solo dentro de una actividad SharedResourceScope.

PublishSymbols Result (String) propiedad

Devuelve el identificador de transacción que SymStore.exe devuelve.

Propiedades de los argumentos de PublishSymbols

  • FileList (IEnumerable < String >): debe especificar la ruta de acceso y el nombre completos de cada archivo de símbolos. Puede utilizar la actividad FindMatchingFiles para proporcionar este argumento.

    Por ejemplo, podría llamar a FindMatchingFiles con el siguiente valor en la propiedad MatchPattern: String.Format("{0}\**\*.pdb", BinariesDirectory).

  • StorePath (String): debe especificar la ruta de acceso UNC a la carpeta raíz del almacén de símbolos de SymStore.

  • CommandLineArguments (String): para obtener información sobre otros argumentos que se pueden pasar a SymStore.exe, vea las opciones de línea de comandos de SymStore.

  • Comentarios (String): puede especificar los comentarios de la transacción que se registran en el archivo historial de transacción en el almacén de símbolos. Esta propiedad es equivalente al parámetro /c Comment del comando SymStore.exe. Para obtener más información, vea las opciones de línea de comandos de SymStore.

  • ProductName (String): puede especificar el nombre del producto, que se registra en el archivo de historial de transacciones en el almacén de símbolos. Por ejemplo, puede establecer esta propiedad en el nombre de la definición de compilación (Name), que puede obtener de la propiedad BuildDefinition llamando a GetBuildDetail. Esta propiedad es equivalente al parámetro /t Product del comando SymStore.exe. Para obtener más información, vea las opciones de línea de comandos de SymStore.

  • StoreCompressed (Boolean): puede establecer este valor en True para almacenar archivos en el almacén de símbolos como archivos comprimidos. De lo contrario, los archivos se almacenan sin comprimir. Esta propiedad es equivalente al parámetro /compress del comando SymStore.exe. Para obtener más información, vea las opciones de línea de comandos de SymStore.

  • Versión (String): por ejemplo, puede establecer esta propiedad en el número de compilación (BuildNumber) que se puede obtener llamando a GetBuildDetail. Esta propiedad es equivalente al parámetro /v Version del comando SymStore.exe. Para obtener más información, vea las opciones de línea de comandos de SymStore.

Volver al principio

Obtener referencias a objetos útiles

Puede obtener referencias a objetos útiles utilizando las actividades de Team Foundation Build.

Obtener una referencia al objeto de una colección de proyectos de equipo (actividad GetTeamProjectCollection)

Utilice la actividad de GetTeamProjectCollection para obtener, de su propiedad Result, una referencia a un objeto TfsTeamProjectCollection. Este objeto de inicio es importante; por ejemplo, puede utilizarlo para conectarse a un servidor de la capa de aplicación para Team Foundation.

Obtener una referencia al objeto IBuildAgent (la actividad GetBuildAgent)

Utilice la actividad GetBuildAgent para obtener, de su propiedad Result, una referencia al objeto IBuildAgent. Solo puede utilizar esta actividad dentro de una actividad AgentScope.

Obtener una referencia al objeto IBuildDetail (actividad GetBuildDetail)

Utilice la actividad GetBuildDetail para obtener, de su propiedad Result, una referencia al objeto IBuildDetail. Puede utilizar este objeto para obtener, y establecer en algunos casos, los datos sobre la compilación actual.

Volver al principio

Obtener una referencia al objeto BuildEnvironment (actividad GetBuildEnvironment)

Utilice la actividad GetBuildEnvironment para obtener, a través de su propiedad Result, una referencia al objeto BuildEnvironment. Normalmente, se utiliza esta propiedad para realizar las tareas siguientes:

  • Utilice el objeto Environment para determinar si el segmento actual del flujo de trabajo se está ejecutando en el controlador de compilación o en el agente de compilación.

  • Utilice el objeto CustomAssemblyPath para obtener la ruta de acceso a los ensamblados que contienen actividades personalizadas en el agente de compilación.

Volver al principio

Actividades que no están diseñadas para que se modifiquen en un proceso de compilación personalizado

Algunas actividades no están diseñadas para que se modifiquen en un proceso de compilación personalizado.

ApproveRequestForCheckIn

Omita esta actividad.

Volver al principio

CreateWorkspace (Actividad)

Omita esta actividad.

Volver al principio

DeleteWorkspace

Omita esta actividad.

Volver al principio

GenerateRunSettings

Omita esta actividad.

Volver al principio

GetApprovedRequests

Omita esta actividad.

Volver al principio

GetPendingChanges

Omita esta actividad.

Volver al principio

GetRejectedRequests

Omita esta actividad.

Volver al principio

GetReshelvedShelveset

Omita esta actividad.

Volver al principio

GetShelvedChanges

Omita esta actividad.

Volver al principio

GetWorkspace

Omita esta actividad.

Volver al principio

ParseWorkspaceSpec

Omita esta actividad.

Volver al principio

RejectRequestFromCheckIn

Omita esta actividad.

Volver al principio

RetryRequest

Omita esta actividad.

Volver al principio

RetryRequests

Omita esta actividad.

Volver al principio

RevertWorkspace

Omita esta actividad.

Volver al principio

RunOnce

No documentado en la versión actual.

SyncWorkspace

Omita esta actividad.

Volver al principio

SynchronizeRequests

Omita esta actividad.

Volver al principio

TfsBuild (Actividad)

Omita esta actividad.

Volver al principio

TfQueryConflicts

Omita esta actividad.

Volver al principio

Vea también

Conceptos

Utilizar la plantilla predeterminada para el proceso de compilación

Implementar y configurar un controlador de compilación

Implementar y configurar los agentes de compilación

Otros recursos

Diseñador de flujo de trabajo de Visual Studio 2010

Windows Workflow Foundation

Referencia de MSBuild

Ver resultados de la compilación