2012-03-27 14 views
6

nedeniyle hatalar meydana geldiğini görüyoruz. Her bir check-in sırasında baştan çıkarılan TFS 2010 sürekli entegrasyon otomatik yapılarını kullanıyoruz. Kısa süre önce, aynı aracı üzerinde sıralı olarak farklı yapıcılara paralel olarak Debug ve Release'i oluşturmak için süreç şablonunu değiştirdim.Paralel olarak farklı tatlar oluşturmaya geçtikten sonra, CreateLabel hatası

O zamandan beri, aşağıdaki hata nedeniyle kesintisiz bir yapılandırma hatası görüyoruz. Sıklıkla kabul edilemez (her 5-10'uncu yapı).

"TF203059: etiket zaten mevcut farklı bir etiket adıyla komutu yeniden deneyin." Bunun olmasına neden olan bir belirli bir desen anlamaya edemedik

. Daha önce hiçkimse bununla karşılaştı mı? Oluşturma işleminde Etiket Oluştur aktivitesinde yapılması gereken bir değişiklik var mı?

+0

Bu, yapı süreci şablonunuzu nasıl özelleştirdiğinize bağlıdır. Bunu nasıl kurduğunu biraz daha yakından anlatabilir misin? – pantelif

+0

Merhaba pantelif, cevabınız için teşekkürler. Http://blogs.msdn.com/b/jimlamb/archive/2010/09/14/parallelized-builds-with-tfs2010.aspx – LiliaP

+0

Daha fazla ayrıntı ekledim: Bir ParallelForEach kontrol akışı sırasına göre kontrol akışı ve içindeki tüm RunOnAgent bloğunu yerleştirir. CreateLabel aktivitesi RunOnAgent bloğunun bir parçasıydı, şimdi her yapı tadı için çalıştırılıyor. Etiket, $ (Tarih: yyyy.MM.dd) $ (Rev: .rr) biçimindeki sayıyı oluşturmak için ayarlandı. Sonuç olarak, hem hata ayıklama hem de sürüm aynı etiketi kullanır. Bu, çoğu zaman sorunlara neden olmaz, ancak aralıklı yapı hatalarıyla karşılaşırız – LiliaP

cevap

1

Paralelleştirmeden gelebilecek birkaç sorun var. Etiketler birdir ve değiştiren iş öğeleri ikincisidir. Daha fazla olabilir, ama ben buna katılıyorum. Her ikisini de tek dişli parçaya taşırsanız, sorunlarınızı çözmelisiniz. Ancak, çoğu zaman kendi sorunlarıyla birlikte gelir. IIRC, etiketleme, çalışma alanını eşleştirmenizi ve etiketlemeden önce en son hali almanızı gerektirir, böylece çok sayıda dosyanız varsa, bu, paralelleştirmenin herhangi bir performans avantajını azaltabilir. İş öğeleri için sorun, bir işlem başka bir dal okunduktan sonra iş öğesini değiştirdiği ve TFS'nin değiştirilememesi için değiştiği şekilde sığdırdığı için sorun oluşabilir.

+0

Rob - Cevabınız için çok teşekkürler! Ülke dışına çıktım ve şimdi bu projeye geri dönüyorum.Bizim çözümümüz o kadar büyük değil, bu yüzden en son almak o kadar uzun sürmeyecek. – LiliaP

+0

Rob - bu soruna yönelik çözümünüzle ilgili bir soru: Etiketlemeyi tek dişli parçaya nasıl taşıdınız? Visual Studio Oluşturma İşlemi düzenleme arayüzünde şablonu düzenleyerek veya özel bir çözüm uygulamak zorunda kaldınız mı? – LiliaP

+0

Bir süredir var ama bence iş akışını düzenleyerek parçayı tek parçalı parçaya taşıdım. –

0

Paralel Yapılandırmalar "Hata Ayıklama" ve "Bırakma" için oluşturulur. Aynı etiketi iki kez koymaya çalışır, bu yüzden sorunlara neden olabilir. özellikle bu etiketi sadece bir kez vermeliyiz. Yani, Bu durumda, bu tür bir sorunu önlemek için her iki konfigürasyon için etiketi koymak ve ikinci konfigürasyon için etiket vermeye atlamak için bir koşul koyabiliriz.

kullanımı bu takdirde durumu:

if (yapılandırma = "Release") Sonra (CreateLabel) başka biz zaten "için bir kez bu etiketi sağlamış olarak [Debug Bu boş bırakmak zorunda "Koşulu" serbest bırakın "

Bu şekilde, yinelenen etiket sorununa ilişkin sorunumu çözdüm.

"TF203059: etiket zaten mevcut farklı bir etiket adıyla komutu yeniden deneyin." Ben de paralel inşa için mükemmel para cezası sizin için çalışacaktır umut

.

İlgili konular