Nasıl ASP.NET Web sitesi ile SVN revizyon numarasını senkronize edilir?

oy
84

Yığın taşması dibinde bir yıkılma sürüm numarası vardır:

svn revizyon: 679

Benim böyle otomatik sürüm kullanmak istiyorum .NET Web Site/Application, Windows Forms, WPD projelerine / çözümleri.

Bunu nasıl uygularım?

Oluştur 01/08/2008 saat 19:00
kaynak kullanıcı
Diğer dillerde...                            


7 cevaplar

oy
29

Jeff kullanıyor gibi görünüyor cruisecontrol.net podcast transkriptleri leafing bazı dayalı. Bu üretime kaynak denetiminden dağıtım yeteneklerini otomatik gibi görünüyor. Ekleme oluyor bu nerede olabilir mi?

Cevap 01/08/2008 saat 19:24
kaynak kullanıcı

oy
26

Biz ile bunu xUnit.net bizim inşa otomatik için. Biz kullanmak CruiseControl.net(ve TeamCity dışarı çalışıyoruz). Biz sürekli entegrasyon için çalışacak MSBuild görev otomatik olarak bizim için yapı numarasını değiştirir, böylece ortaya çıkan yapı ZIP dosyası DLL ve EXE'ler bir düzgün sürüm kümesi içerir.

Bizim MSBuild dosya düzenli ifade değiştirmeler yapan bir DLL için UsingTask başvuru içeriyor: (o da MS-PL lisansı ile kaplı olarak, bu DLL kullanmanızda sakınca yoktur)

  <UsingTask
     AssemblyFile = "3rdParty \ CodePlex.MSBuildTasks.dll"
     Görevadı = "CodePlex.MSBuildTasks.RegexReplace" />

Daha sonra, CI sistemi tarafından otomatik olarak sağlanır yapı numarası, ekstrakte edin. Ayrıca sağlayan CI yapı numarası ile entegrasyon sonuçlarını görebilirsiniz çünkü sadece, İsterseniz de kaynağı düzeltmesi sayısını sağlamak için kaynak denetim sağlayıcı alabilir, ama biz CI sisteminde inşa # daha yararlı olduğunu bulduk yapı dahil edildi changeset (ler) geri bağlantı.

 <! - Basamaklı bir yapı numarasını bulmaya çalışır ->

 <PropertyGroup Durum = " '$ (BuildNumber)' == ''">
   <BuildNumber> $ (build_number) </ BuildNumber>
 </ PropertyGroup>
 <PropertyGroup Durum = " '$ (BuildNumber)' == ''">
   <BuildNumber> $ (ccnetlabel) </ BuildNumber>
 </ PropertyGroup>
 <PropertyGroup Durum = " '$ (BuildNumber)' == ''">
   <BuildNumber> 0 </ BuildNumber>
 </ PropertyGroup>

(Elle otomatik oluşturma komut test edebilirsiniz böylece Biz TeamCity CC.net olduğunu ve eğer ne de mevcutsa ccnetlabel, dan BUILD_NUMBER, deneyin, biz, 0 varsayılan.)

Sonra, bizim tüm projelerinin içine bağlamak bir GlobalAssemblyInfo.cs dosyasına yapı numarasını ayarlayan bir görev var:

 <Hedef Adı = "SetVersionNumber">
   <REGEXREPLACE
       Desen = 'AssemblyVersion \ ( "(\ d + \. \ D + \. \ D +). \ \ D +" \')
       Yedek = 'AssemblyVersion ( "$ 1. $ (BuildNumber)")'
       Dosyalar = 'GlobalAssemblyInfo.cs' />
   <Exec Komutanlığı = "attrib xunit.installer \ App.manifest" />
 </ Hedef>

Bu AssemblyVersion özelliğini bulmak ve abcBuildNumber ile abcd sürüm numarasını değiştirir. Biz genellikle (o 1.0.2.0 var bugün, fe) sıfır sabit oluşturucu numarasının ilk üç parça ile ağaca kontrol kaynağını ve dördüncü bırakacaktır.

Oluşturduğunuz yapı sürecinde, SetVersionNumber görev, yapı görevi öncesinde emin olun. Sonunda, biz her otomatik yapı için ikili bir geçmişi var ki yapı sonuçlarını sıkıştırmak için Zip görevi kullanın.

Cevap 16/08/2008 saat 19:00
kaynak kullanıcı

oy
24

Kodunuzdaki aşağıdaki hiçbir yerinde ekleyerek bunu yapabilirsiniz

$Id:$

Yani, örneğin @Jeff yaptı:

<div id="svnrevision">svn revision: $Id:$</div>

ve sunucu işaretlendiğinde $ Id değiştirdik: $ cari revizyon numarası ile. Ben de bu referans buldum .

Orada da $ Tarih: $ , $ Rev: $ , $ Revizyon: $

Cevap 01/08/2008 saat 19:08
kaynak kullanıcı

oy
17

Eğer kullanıyorsanız ASP.Net MVC(StackOverflow yaptığı gibi), bir yazdım otomatik almak ve en son SVN revizyon görüntülemek için nasıl 3 aşamalı kılavuzu takip etmek kolay . Kılavuz bu çok soru hakkında kendi kendime düşünüyordum esinlenmiş! :O)

Cevap 17/12/2008 saat 11:17
kaynak kullanıcı

oy
10

Eğer TortoiseSVN'ye kullanıyorsanız @Balloon, sen paketlenmiş kullanabilirsiniz SubWCRev programı. Bu bir çalışma kopyasını sorgular ve size sadece en yüksek revizyon numarasını söyler. Kuşkusuz, bu bir sunucu tarafı soruna bir istemci tarafı yaklaşım gibi görünüyor, ama güzel bir komut satırı programı, senin bir oldukça kolay kullanım için onun çıkış yakalamak mümkün olmalıdır.

Cevap 15/09/2008 saat 20:04
kaynak kullanıcı

oy
9

$revve bunun gibi diğerleri tek tek dosyalar için revizyonlar, bu nedenle dosya değişmedikçe değişmez. Web sayfasında numara projenin tamamı için svn revizyon numarası (büyük olasılıkla, burada varsayarak) olduğunu. Yani başkalarının işaret edilmiştir dosya revizyonlar, farklıdır.

Bu durumda ben CCNET projesinin revizyon numarasını çekerek ve bu numara ile web sayfasının bir bölümünü yeniden yazıyor varsayalım. Herhangi CI çözüm bunu yapmak mümkün olmalıdır, ccnet ve TeamCity (olmasa da web sayfalarına, ancak dağıtım / montaj sürümlerinin otomatik sürüm) ile ben kurdu.

Bunu yapmak için, onu destekleyen bir CI çözümü kullanmaya veya "dağıtmadan" önce o sürümü saklamak ve dosyalara yazmak için derleme işlemi (MsBuild / Nant) kullanın.

Cevap 13/08/2008 saat 02:28
kaynak kullanıcı

oy
5

BradWilson cevabı @ eklemek için: "İsterseniz de kaynağı düzeltmesi sayısını sağlamak için kaynak denetim sağlayıcı alabilir"

Subversion'ın ve MSBuild bağlamak için MSBuild Topluluk Görevler Projesi

Cevap 01/10/2008 saat 12:51
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more