2011-06-06 21 views
5

Ürünümüzün birden fazla özelliği için TB 2010'u kullanarak birden fazla derleme tanımları oluşturdum. Varolan tanımları kullanarak "ana yapıyı" nasıl oluşturabilirim merak ediyorum. Daha spesifik olacağım: MSBuild'de başka bir MSBuild projesini çağırmak için hedef kullanabilirim. Bu şekilde, son ana inşa komut dosyasını almak için zincir oluşturma tanımları yapabilirdim. TB 2010'da nasıl yapabilirim Not: WF4'ü kullanmak istiyorum ... MSBuild değil!Master Build with Team Build 2010

Teşekkür

cevap

4

Kesinlikle bir yapı tanımı için bir yapı sıraya bir iş akışı özel bir aktivite yazabilir. Bu etkinlik bir kod etkinliği olmalı ve sıralamak istediğiniz yapı tanımının adını kabul etmelidir.

TFS sunucunuzla etkileşime giren kodu bir oluşturma kuyruğuna yazmak için, Microsoft.TeamFoundation.Build.Client derlemesinin API'lerini kullanabilirsiniz. Ayrıca, Jim Lamb, here oluşturmak için özel etkinlikler oluşturma hakkında blog yazdı.

ayrıntılarında, kodunuzu aşağıdaki adımları yapmalıdır:

  1. ekip proje koleksiyonunda bağlanmak için TfsTeamProjectCollection nesnesi oluşturur.
  2. IBuildServer nesnesini edinin. Bu ana giriş. Buradan yapı tanımını elde edebilirsiniz, bir derleme oluşturma, bir sıra oluşturun, vb. Oluşturun.

"TFS programa göre sıra aramayı denediğimde, 2010 sürümü için hiçbir örnek olmadığına şaşıyorum." bir yapı oluştur. Muhtemelen bu konuda blog yazacağım.

Bu konuda dikkatli olmanız gereken bir şey, özel etkinliğinizden sıraya alınmış yapının Yapı Hizmeti Hesabı tarafından kuyruğa alınacağı, dolayısıyla bu hesabın sıraya göre permissions numaralı kuyruğa sahip olduğundan emin olmanız gerekir. TFS Yapı Hizmetleri Hesapları grubuna eklendiğinde varsayılan olarak, sahip olduğunu sanmıyorum.

GÜNCELLEME:

Ewald Hofman sadece TFS hakkında bir dizi özel bir etkinlikten taklit yaparak yaklaşık anlatılır bunlardan biri, Yapı yazdı.

http://www.ewaldhofman.nl/post/2010/05/28/Customize-Team-Build-2010-e28093-Part-9-Impersonate-activities-(run-under-other-credentials).aspx

Ben de Taylor Lafrine 2009 yılında geri görevinden bir yapı oluşturma konusunda programlı blogged öğrendim: Bu sizin ihtiyaç için mükemmel

http://blogs.msdn.com/b/taylaf/archive/2009/12/04/introducing-tfs-impersonation.aspx

yardımcı olur Umut.

+1

Çok teşekkürler! Bu – monkzen

+0

@Duat Le'yi deneyeceğim. Kuyruğa girdiğimde neler yapabileceğimi biliyorsunuz, birbiri ardına bir tane inşa ediyor ve her biri diğerine bağlı mı? Benim sorunum, yapının eşzamansız olarak sıraya konması, ancak bir yapı için beklemek istiyorum. Herhangi bir fikir? – Rookian

+0

Yapıyı tamamlayana kadar, yapıyı bekleyen ve bekleyen bekleyen iş parçacığınızı kesinlikle engelleyebilirsiniz. İhtiyacınız olan şey IQueuedBuild nesnesini almak ve Durum özelliği Tamamlandı veya İptal edilene kadar beklemektir. Oluşturma isteğinin ertelenebileceğini unutmayın, bu yüzden bir göz atın, yapı isteğinin ertelenmesi durumunda beklemeyi veya iptal etmeyi seçebilirsiniz. –