SORU
30 Mart 2009, PAZARTESİ


'çıkış için elinize sağlık kendi dizine her proje?almak için en iyi yolu ne

Team Foundation Server içine büyük bir kod temeli atıyorum. Oluşturma işlemi bir "yapı projelerimiz. dağıtmak için" hazır oluşturmak istiyorum

Bu yaptığımız normal şekilde her bir proje çıktı kendi klasöründe olacak. Bu yüzden, örneğin, bir rüzgar gibi

C:\project1\
            assembly1.dll
            assembly2.dll
            project1.exe
            project1.exe.config
C:\project2\
            assembly2.dll
            assembly3.dll
            project2.exe
            project2.exe.config
C:\project3\
            assembly1.dll
            assembly3.dll
            project3.exe
            project3.exe.config

Biz böyle olan.

Elinize sağlık, ama aynı dizinde her şeyi sopa istiyor gibi görünüyor.

C:\output\
          assembly1.dll
          assembly2.dll
          assembly3.dll
          project1.exe
          project1.exe.config
          project2.exe
          project2.exe.config
          project3.exe
          project3.exe.config

hangi disk alanı (derlemeleri sadece bir kez, her) bir miktar kaydeder, ancak biz bunu istiyoruz.

MSBuild/elinize sağlık çıktı dosyalarını koymak gereken yerde belirlemek için en iyi yolu nedir? Sln/csproj dosyaları ayrı ayrı elde etmek için düzenlemek gerekir bu veya TFSBuild bunu yapabilirim.dosya projen? (MSBuild-belirli bir dosya yani)

CEVAP
11 HAZİRAN 2009, PERŞEMBE


Ben burada başka bir yöntem yazı yazdı:

http://mikehadlow.blogspot.com/2009/06/tfs-build-publishedwebsites-for-exe-and.html ama eğer bağlantıyı takip için rahatsız olabilir mi, işte tam olarak bu

Genellikle bu Desenler ve Uygulamalar anlatıldığı gibi uber-çözüm PDF, elinize sağlık Ekip Geliştirme tek bir Rehber içinde senin takımın kontrolü altında tüm kod toplamak için iyi bir uygulamadır. Eğer daha sonra Team Foundation server bu çözüm oluşturmak için yapılandırmak, davranışlarını tek bir klasör içine inşa edilen çıkış yeri olduğu varsayılan,‘’. Release

Çözüm içinde herhangi bir web uygulama projeleri de bir klasör _PublishedWebsites\ adlı çıkış olacaktır. Bu basit web uygulaması dağıtmak robocopy anlamına gelir çünkü çok güzel.

Ne yazık ki, Win, konsol veya kütüphane gibi diğer proje türleri için benzer varsayılan davranışı yok. Eğer seçilen herhangi bir proje çıktı(ler) ile _PublishedApplications\ alt klasör olabilir eğer çok iyi olurdu. Neyse ki o kadar da zor değil.

Yol _PublishedWebsites işleri oldukça basittir. Eğer web uygulamanızın proje dosyası bakarsanız altına alma fark edeceksiniz:

<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v9.0\WebApplications\Microsoft.WebApplication.targets" />

Benim makinede MSBuildExtensionsPath özelliği ise Microsoft açarsak MSBuild\Dosyaları C:\Program olur.WebApplication.hedefler oluşturmak bir masaüstü olmadığı zaman tanır oluşturmak oldukça basit bir MSBuild dosyası olduğunu görebiliriz dosyası, yani bir Team Foundation build, ve kopyalar çıktı

$(OutDir)_PublishedWebsites\$(MSBuildProjectName)

Ben sadece Microsoft kopyalanmış.WebApplication.hedef dosya, benim projeden göreli bir yol ile kaynak kontrol altına koy dosya ve _PublishedApplications için _PublishedWebsites değişti ve dosya CI olarak yeniden adlandırıldı.exe.hedefler. _PublishedApplications, ben çıktı almak istiyorum bunun için her proje sadece proje altındaki bu içe aktarma dosyası ekledi:

<Import Project="<your relative path>\CI.exe.targets" />

CI düzenleyebilirsiniz.exe.senin emirlerini yerine getirmek için hedefler (ya da bunu aramak istediğiniz ne olursa olsun). Benim durumumda, tek değişiklik şu ana kadar birkaç satır App kopyasını eklemek.yapılandırma dosyası:

<Copy SourceFiles="$(OutDir)$(TargetFileName).config" DestinationFolder="$(WebProjectOutputDir)\bin" SkipUnchangedFiles="true" />

Microsoft bir sürü şey var.WebApplication.sadece web uygulamaları ile ilgili ... ... ve diğer proje türleri için çıkarılmış olabilir bu hedefler, ama okuyucu için bir alıştırma olarak bırakıyorum.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • kruno j

    kruno j

    6 Mayıs 2007
  • LevelUpTuts

    LevelUpTuts

    20 Ocak 2012
  • New Scientist

    New Scientis

    27 Kasım 2006