CruiseControl.net’teki CCNetArtifactDirectory
Sorununun Giderilmesi
Otomatik bir derleme sistemi kurmak zor olabilir, özellikle platforma özgü yapılandırmalarla uğraşırken. Geliştiricilerin karşılaştığı yaygın bir zorluk, CruiseControl.net
ile MSBuild
görevini entegre etmektir. Bu blog yazısı, CCNetArtifactDirectory
‘yi etkili bir şekilde kullanmanın yollarını açıklamayı amaçlamaktadır, böylece derleme çıktılarınız gereksiz değişiklikler yapmadan düzgün bir şekilde yönetilir.
Sorunu Anlamak
CruiseControl.net’i ayarlarken MSBuild
görev yapılandırması ile ilgili bir sorunla karşılaşmış olabilirsiniz. Buradaki ana soru şudur:
Derleme sürecimde hata oluşturmadan MSBuild içinde
CCNetArtifactDirectory
‘yi nasıl etkili bir şekilde kullanabilirim?
Karışıklık, CCNetArtifactDirectory
‘nin otomatik olarak MSBuild’e geçmesi beklenmesine rağmen, birçok kullanıcının derleme argümanlarında bunu doğru bir şekilde referans verememesi nedeniyle ortaya çıkmaktadır. Görmekte olabileceğiniz yaygın bir hata mesajı şu şekildedir:
ThoughtWorks.CruiseControl.Core.Config.Preprocessor.EvaluationException: Bilinmeyen simge CCNetArtifactDirectory'ye referans
Bir çözüme dalalım.
Çözüm
CCNetArtifactDirectory
Hakkında Endişelenmeyin
İyi haber şu ki, MSBuild komutlarınızda doğrudan CCNetArtifactDirectory
‘yi belirtmeniz gerekmez. Varsayılan olarak, CruiseControl.net bu dizini MSBuild’e geçirir, bu da yapılandırmanızda belirtilen çalışma dizinine göre derleme çıktısını uygun konuma yerleştirir.
İşte bir örnek yapılandırma:
<executable>c:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe</executable>
<workingDirectory>C:\data\projects\FooSolution\</workingDirectory>
<projectFile>FooSolution.sln</projectFile>
<buildArgs>/noconsolelogger /p:Configuration=Debug</buildArgs>
Çıktı Konumu
Yukarıdaki yapılandırmayı kullanarak derlemelerinizin çıktısı şu konuma yönlendirilecektir:
C:\data\projects\FooSolution\[ProjeAdı]\bin\Debug
Bu, varlıkların doğru bir şekilde üretildiği anlamına gelir ve CCNetArtifactDirectory
‘yi belirtmeniz konusunda endişelenmenize gerek yoktur.
Çıktı Konumunu Özelleştirmek
Ancak, çıktınızı farklı bir konuma yönlendirmek isterseniz, bunu CruiseControl.net yapılandırmanızın <publishers>
bölümünde yapabilirsiniz.
İşte çıktı dizinini özelleştirmenin yolu:
<publishers>
<xmllogger />
<buildpublisher>
<sourceDir>C:\data\projects\FooSolution\FooProject\bin\Debug</sourceDir>
<publishDir>C:\published\FooSolution\</publishDir>
<useLabelSubDirectory>false</useLabelSubDirectory>
</buildpublisher>
</publishers>
Bu örnek yapılandırmada:
sourceDir
: MSBuild’in varlıkları yayınlayacağı dizini belirtin.publishDir
: Derleme çıktılarınızı yayınlamak istediğiniz hedefi belirleyin.useLabelSubDirectory
: Bu seçenek, yayın yolunuza etiket dizinlerini dahil etmek veya hariç tutmak için değiştirilebilir.
Özet
CruiseControl.net’i MSBuild ile entegre etmek zor bir görev olmak zorunda değil. CCNetArtifactDirectory
‘yi doğrudan referans almanız gerekmediğini bilerek, derleme sürecinizi etkili bir şekilde düzene sokabilirsiniz. Derleme çıktılarınızı yönlendirmeye ihtiyacınız olduğunda, sadece <publishers>
bölümünü gerektiği gibi yapılandırmanız yeterlidir.
Bu çözümlere sahip olduğunuzda, otomatik derleme yapılandırmalarınızı sorunsuz bir şekilde yönetmek için daha iyi bir şekilde donanımlı olacaksınız.
Bu, CruiseControl.net’teki CCNetArtifactDirectory
sorunları ile ilgili MSBuild kullanımı konusundaki incelememizi sonlandırıyor. Bu bilgiyi workflow’unuzu geliştirmek ve geliştirme deneyiminizi daha akıcı hale getirmek için kullanın!