2016-02-11 34 views
15

TFS 2015'i (Update 1) yerinde kurduk ve yeni TFS Build sistemini kullanarak bir Continuous Integration/Build sistemi oluşturmaya çalışıyoruz. Derleme iyi çalışıyor ve bana yeşil ışık veriyor, ancak varsayılan yapıya baktığımda, yalnızca bin dizinden ikili dosyaları oluşturuyor ve uygulamayı yerinde bir sunucuya dağıtmanın kolay bir yolu yok gibi görünüyor. .TFS 2015 Build ile Web Uygulaması Oluşturun ve Dağıtın

Dosya sistemi kopyası ve powershell betiği için iki dağıtım seçeneği vardır ve bunları dosyaları yeni bir sunucuya kopyalamak için kullanacak kadar kolay olabilir, ancak yapı yalnızca ikili dosyaları oluşturduğundan, Bunun için Web eserlerini (cshtml, resim, komut dosyaları, css, vb.) toplamak için bir araç göreceksiniz.

http://www.deliveron.com/blog/building-websites-team-foundation-build-2015/

Ancak bu WebDeploy kullanır ve oldukça dağınık dağıtma paketi oluşturur:

ayrıntılı bir google arama sonra, ben sadece bu bahsediyor bir makale buldum.

Siteyi nasıl dağıtabilirim (standart MVC web uygulaması, aslında benim sınamalarım, proje oluştur sihirbazı tarafından oluşturulan varsayılan boilerplate sitesini kullanıyor), yerel bir sunucuya yapay olarak mümkün olan en kolay şekilde yapay mıdır? WebDeploy'ı sunuculara yüklemek zorunda kalmak istemiyorum ve son eserleri dağıtmak için PowerShell'i veya bir şeyi kullanmayı tercih ediyorum.

build 4 adımda (Test, Index &, Yayınlama şeyler üret Yayınla, Build) ile, sadece standart Visual Studio oluşturma şablondur.

+0

Bu sizin için nasıl oldu? Aşağıdaki sınama adımı başarısız olursa, dağıtımın oluşmadığından emin olmaya çalışıyorum. Bunu yapabiliyor muydun? –

+1

@ one.beat.consumer - Derlemenizi/testinizi dağıtımdan iki ayrı aşama olarak ayırmalısınız, ardından aynı kodu test/qa/prod ortamlarınıza dağıtabilirsiniz. –

+0

Teşekkürler. "Serbest Bırak" özelliği, paketleri belirtilen şekilde dağıtıyor. Sorun yaşadığım, XUnit için bulduğum tek örnek, yapıya yapılan özelleştirmelerdi. Daha önce bir Test adımını uygun şekilde uyarlamamı sağlayan xunit.runner.visualstudio NuGet paketini buldum. Bununla birlikte, şu anda iki yapıya ihtiyaç vardır - test için hazırlık oluşturmak için ilk, ve testler geçerse ikinci bir dağıtım paketi oluşturmak. –

cevap

15

Biz çizgi izleyen kullanın adım ve MSBuild için Argümanlar olarak "Visual Studio kurmak" kullanırlar. Yayınlama Profilinin Adı (pubxml dosyasının dosya adı) olmalıdır. Dosya Adı Build.pubxml ise, yayınlama profili Build'dir. örneğin

:

/p:DeployOnBuild=True /p:PublishProfile=Build 
+3

@Sabastian - Teşekkürler. Benim sorum şu bir sonraki Visual Studio Test oluşturma adımındaki işler başarısız olursa bu dağıtım nasıl önlenebilir? –

-5

40+ uygulamalar için WebDeploy/MSDeploy kullanıyoruz ve bunu seviyoruz. WebDeploy'ı tüm sunucularımıza yüklüyoruz, böylece daha kolay bir şekilde dağıtılabilir, ancak WebDeploy'un önceden yüklenmiş olmasını gerektirmeyen Web Deploy On Demand özelliğini de kullanabilirsiniz.

/p:DeployOnBuild=True /p:PublishProfile=$(DeploymentConfiguration) 

Değişkenler üzerinde sekme sayfası DeploymentConfiguration yapılandırılacak etti:

1

I wanted to add that Ben Day has an excellent write-up that helped us package quickly and then release to multiple environments through Release Manager.

O'nun Msbuild argümanlar şuna benzer:

/p:DeployOnBuild=True /p:DeployDefaultTarget=WebPublish /p:WebPublishMethod=FileSystem /p:DeleteExistingFiles=True /p:publishUrl=$(build.artifactstagingdirectory)\for-deploy\website 

bu ve kabul edilen yanıt arasındaki fark bu parametre kümesi bir eser klasöründeki her şeyi aşamalarında olması ve ardından yapı parçası olarak kaydeder. Aynı kodu tekrar tekrar dağıtabiliriz.

Web.env.config dosyalarını for-deploy klasörünün yanında yakalarız ve daha sonra, yayınlandığımız ortam için her şeyin güncellenmesini sağlamak için sürüm işleminde xdt dönüştürmelerini kullanırız. Tüm web projelerimiz için iyi çalışıyor.

+1

Yayınlama dizini yayınlama profilinde ayarlanabilir, komut satırında belirtilmesi gerekmez. Böylece, daha kolay versiyonlanabilir –

+0

Bu iyi bir nokta. Çevremiz için (belki de burada olağandışı mıyız?) Bu yöntemi, siteyi bir yapı artefaktı olarak yakalamak ve daha sonra TFS Sürüm Yöneticisi aracılığıyla birden çok hedefe dağıtmak için herhangi bir yayın profilini geçersiz kılmak üzere seçtik. –

İlgili konular