2011-11-08 16 views
7

Tengo 2 definiciones de compilación configuradas para una solución, 1 es una compilación nocturna que se activa todas las noches y la otra es una compilación de Activación controlada que se activará cuando los desarrolladores intenten verificar nuevos cambios en el control de código fuente. La compilación nocturna utiliza una plantilla personalizada que aumenta las versiones de ensamblaje con el método que se ha modificado ligeramente desde Ewald Hoffman method. Cuando un archivo está protegido a través de la actividad personalizada para comprobar archivos en, me sale el error de compilación:¿Puedo omitir la compilación de registro bloqueado después de verificar un archivo durante un proceso de compilación por separado? TFS 2010

Your check-in could not be completed because it affects the following gated build definitions \Project\GatedBuld. To complete your check-in you will need to queue a build of the shelveset Gated_2011-11-08_09.31.42.6934;DOMAIN\TFSBuildAccount.

En la actualidad no he sido capaz de encontrar una manera de evitar este registro de entrada de construcción cerrada (IC construye se previenen usando el comentario * NO_CI * en el comentario).

He intentado establecer el permiso "Reemplazar la validación de check-in por compilación" para la cuenta de servicio de compilación (a través de Seguridad para la compilación cerrada), pero hasta donde sé esto solo evitará la compilación bloqueada al verificar el código manualmente (a través de una casilla de verificación presentada en el cuadro de diálogo de Check-in cerrado). Lo que estoy buscando es una manera de evitar una acumulación cerrada al comprobar los cambios en forma automática

¿Alguna sugerencia?

Como siempre, gracias por cualquier ayuda de antemano

Respuesta

7

Cuando checkin sus cambios mediante programación, puede crear un objeto WorkspaceCheckInParameters y establezca su propiedad OverrideGatedCheckIn true. El siguiente código de derivación cerrada checkin (y también CI):

  var pendingChanges = workspace.GetPendingChanges(); 
      if (pendingChanges.Any()) 
      { 
       WorkspaceCheckInParameters parameters = new WorkspaceCheckInParameters(pendingChanges, BuildCommonUtil.NoCICheckInComment) 
       { 
        OverrideGatedCheckIn = true, 
       }; 
       workspace.CheckIn(parameters); 
      } 

en cuenta que necesita para conceder el permiso para omitir el registro cerrada en la cuenta que lleva a cabo el registro de todas las definiciones de compilación afectadas. En este caso, es la cuenta de servicio de compilación de la compilación Nightly.

0

que había escrito el código de actualización de versión de ensamblado en Powershell y no podía encontrar el código slimier "OverrideGatedCheckIn = true" para Powershell y todos los archivos de la versión de montaje que hice fue en movimiento (SharedAssembly.vb & SharedAssembly.cs) a una carpeta llamada y SharedAssembly excluyéndolos a considerar para el proceso GatedCheck-In.

enter image description here

Cuestiones relacionadas