2011-11-08 3 views
7

Ho due definizioni di build impostate per una soluzione, 1 è una build notturna che viene attivata ogni notte e l'altra è una build Gated Check-In che si innesca quando gli sviluppatori cercano di verificare le nuove modifiche nel controllo del codice sorgente. La build notturna utilizza un modello personalizzato che aumenta le versioni dell'assieme utilizzando un metodo leggermente modificato dallo Ewald Hoffman method. Quando un file viene controllato in via l'attività personalizzato per controllare i file in, ottengo l'errore di generazione:È possibile ignorare la generazione del check-in Gated dopo aver verificato un file durante un processo di compilazione separato? 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.

Allo stato attuale non sono stato in grado di trovare un modo per aggirare questa build del check-in gated (CI costruisce sono impediti usando il * NO_CI * check in comment).

Ho provato a impostare l'autorizzazione "Sovrascrivi convalida check-in per build" per l'account del servizio di build (tramite Security per la build gated), ma per quanto ne so questo impedirà la generazione gated durante il controllo del codice in manualmente (tramite una casella di controllo presentata nella finestra di dialogo Gated Check-in). Quello che sto cercando è un modo per aggirare un build gated quando si controllano le modifiche automaticamente

Qualche suggerimento?

Come sempre, grazie per qualsiasi aiuto in anticipo

risposta

7

Quando si checkin le modifiche a livello di codice, è possibile creare un oggetto WorkspaceCheckInParameters e impostarne la proprietà OverrideGatedCheckIn su true. Il seguente codice dovrebbe bypassare gated checkin (e anche CI):

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

Nota che è necessario concedere l'autorizzazione per bypassare il check-gated sul conto che esegue il check-in per tutte le definizioni colpite compilazione. In questo caso, è l'account del servizio di build del build Nightly.

0

avevo scritto il codice di aggiornamento versione Assembly in PowerShell e non sono riuscito a trovare il codice slimier "OverrideGatedCheckIn = true" per Powershell e tutti i file della versione di montaggio mi muovevo (SharedAssembly.vb & SharedAssembly.cs) in una cartella denominata SharedAssembly e escludendoli a considerare per il processo GatedCheck-In.

enter image description here

Problemi correlati