2016-04-12 16 views
0

değişken güncellenen kullanmıyorsanız: Bu tamamen çalışıyorTeamCity AssemblyInfoPatcher Ben TeamCity yapı numarasını (9.1.4) Powershell böyle hizmet mesajları (Senaryo Etkileşim kurmak) ile inşa değiştireceğim

Write-Host "##teamcity[buildNumber '$version.$arg2']" 

ince.

Sorun, AssemblyInfoPatcher'ın bu güncelleştirilmiş yapı numarasını kullanmak istememesidir.

Bunun için bir değişken/parametre kullanmayı denedim, ancak bu da çalışmıyor.

"Major.Minor.Patch" değişkenini "Configuration Parameter" veya "Environment Variables" olarak tanımladım. AssemblyInfoPatcher bu değişkenleri gayet iyi kullanıyor ve dosyalarımın dosya versiyonunu yapıdaki TeamCity'de tanımlanan versiyon ile değiştiriyor.

Bir hizmet mesajıyla değişken/parametreyi değiştirmeye çalışırsam işe yaramaz. AssemblyInfoPatcher hala eski değeri kullanıyor. Yapılandırma parametresi

Write-Host "##teamcity[setParameter name='Major.Minor.Patch' value='$version']" 

ile

Write-Host "##teamcity[setParameter name='env.Major.Minor.Patch' value='$version']" 

Örnek ortam değişkeni ile

Örnek I yanlış mı yapıyorum yoksa sadece mümkün değil mi? İstediğim tek şey benim dosyalarım benim TeamCity yapı ile aynı sürüm numarasını ...

cevap

2

AsssemblyInfoPatcher çalışır olması inşa adımların herhangi ( önce ve sonra tüm sonra AssemblyInfo dosyaları dönmek için tekrar çalıştırır inşa adımlarınız). Böylece, inşa adımlarınızdan biri Major.Minor.Patch'u bir servis mesajı kullanarak ayarlarsa, oyun için gerçekten çok geç olur.

Belki birden çok yapı yapılandırmasını birlikte dizebilirsiniz. İlk yapılandırma (A) şimdi yaptığınız gibi parametreyi kurar ve sonra AssemblyInfoPatcher'ı kullanacak olan ikinci yapılandırmayı (B) tetikler. B, A'ya (bitiş oluşturma tetikleyicisine ek olarak) bir anlık görüntü bağımlılığına sahip olacak ve böylece AssemblyInfoPatcher, %dep.A.Major.Minor.Patch%'a başvurabilecektir. Elbette, bu parametre B AssemblyInfoPatcher çalıştırıldığında zaten mevcut olurdu.

+0

Hızlı yanıtınız için teşekkür ederiz. Bir araya getirilecek dizinin nasıl bir araya getirileceği ile ilgili bir eğitim bağlantınız var mı? Bunu TeamCity'de hiç yapmadım. – Shamshiel

+1

1) Hizmet mesajını yapacak bir oluşturma adımıyla SetVersion adlı yeni bir yapı yapılandırması oluşturun. 2) SetVersion'da bir "Finish build trigger" ekleyerek, orijinal derleme yapılandırmanızın tetikleyicisini değiştirin. 3) SetVersion'da bir "Snaphot bağımlılığı" ekleyerek, orijinal yapı yapılandırmanızın bağımlılıklarını değiştirin. 4) Mevcut derleme yapınızın AssemblyInfoPatcher'ını '% dep.SetVersion.Major.Minor.Patch%' adresine başvurmak için değiştirin. Umarım bu yardımcı olur. – sferencik

+1

Kısa bir açıklama için teşekkür ederiz. Bunu kendim yapmayı başardım. Neredeyse dediğin gibi her şeyi yaptım ama adım 2 yapmadım. VCS tetiğini tuttum ve hala TeamCity bağımlılığı nedeniyle çalışıyor çünkü ilk önce Sürüm oluşturuyor. – Shamshiel