Derleme Sunucusunda Visual Studio olmadan ASP.NET 4.5 oluşturun


81

Build Server'ı kurduğumdan beri epey zaman geçti, bu yüzden belki bir şeyi unutmuşumdur veya belki .NET 4.5 bunu en son yaptığım sürümden farklıdır, ama işte benim sorunum.

Bir kaynak kontrol havuzunu izlemek için bir yapı sunucusu kurmaya çalışıyorum. Bir şey değiştiğinde, sunucunun değişiklikleri çekmesini ve projeyi oluşturmasını istiyorum. Hata yoksa, siteyi yapı sunucusunda çalışan bir web sitesine dağıtmak istiyorum.

Geçmişte bunu yaptığımda, bunu yalnızca .NET yüklü olarak yapabileceğimi düşünmüştüm, ancak bu projeyi oluşturmaya çalıştığımda "C: \ Program Files \ MSBuild \ Microsoft \ VisualStudio \ v11" hatası alıyorum .0 \ WebApplications \ Microsoft.WebApplication.targets "eksik ve gidip bakarsam eksik olduğunu görebiliyorum. Aslında, Visual Studio 11 hedef dosyası yoktur.

Çok düşündükten ve kafa karıştırdıktan sonra dışarı çıktım ve .NET 4.5 SDK'nın ihtiyacım olan hedef dosyaları yükleyebileceğini düşünerek "Windows 8 / .NET 4.5 SDK" aldım, ancak bir şekilde yanlış yüklemediğim sürece yapmadı .

Öyleyse, projenin oluşturulmasını sağlamak için Build Server'a ne koymam gerekiyor? Tam Visual Studio 2012'yi yüklemek zorunda kalmamayı tercih ederim.


Bunu yayınladığımdan beri biraz araştırma yapıyorum. Yanlış yoldan gidersem haberim olsun. Görünüşe göre bu, Visual Studio 2010 ile ilgili bir sorundu ve insanlar bunu birkaç yolla çözmüş gibi görünüyor. Bunlardan biri, Visual Studio Team Explorer'ı kurmaktı. Bunu denedim ama sunucum Win 2008 r1 ve VSTE2012 uyumlu değil. Biraz korkutucu olan diğer çözüm ise hedef dosyaları başka bir makineden kopyalamaktır. bu beni daha da ileriye götürdü, ancak şimdi referans derlemelerimin eksik olduğuna dair hatalar alıyorum ki bu orijinal problemle ilgili tahmin ediyorum. Başka bir yolu var mı?
Zack

3
Doğru yoldasınız, sorunu çözmenin kolay yolu VS 2010'u derleme sunucunuza kurmaktır. Bu biraz körelmiş bir alet olsa da. İkinci yol, yaptığınız şeyi yapmak ve hedefleri ve ilişkili bağımlılıkları başka bir makineden almak ve yalnızca bu dosyaları sunucuya dağıtmaktır. Bu yaklaşımın tehlikesi, VS hizmet paketinin kopyaladığınız dosyaları değiştirebilmesidir ve geliştiricileriniz güncellenmiş sürümleri kullanırken derleme sunucunuzun bu hedeflerin eski bir sürümünü kullanıyor olmasıdır.
James Reed

VS2012 mi demek istediniz? Evet. Kontrol edeceğim, ancak 2012 takım gezgini olmadığından beri bunun win server 2008 r1 ile karşılaştırılamayacağını varsayıyorum, ancak iki kez kontrol ettim.
Zack

1
Maalesef 2012 bitini kaçırdım, sanırım sadece sunucu 2008 r2'ye yüklenecek çünkü şeylerin istemci tarafında sadece win 7 ile çalışıyor. Yapı sunucusunda işletim sistemini güncellemenin söz konusu olmadığını varsayıyorum?
James Reed 1812

evet, sunucu işletim sistemini güncellemeyi düşünüyordum. Bakacağım ama izin verilip verilmeyeceğinden emin değilim.
Zack

Yanıtlar:


35

Sorunum , Windows 8 için Windows Yazılım Geliştirme Kiti'ni (SDK) bir Windows 2008 Kutusuna yüklemekle ilgiliydi . Sayfanın devamını okursanız, "Windows Vista ve Windows Server 2008'de .NET Framework 4.5 SDK Araçları" başlıklı bir başlığa ulaşacaksınız. Bu size şunları söyler:

  1. Windows 8 için Windows SDK yükleyicisini desteklenen bir işletim sisteminde (örneğin, Windows 7 veya Windows 8) çalıştırın.
  2. Konum Belirt ekranında aşağıdaki seçeneği seçin: Windows SDK'yı ayrı bir bilgisayara yüklemek için indirin.
  3. İleri düğmesine basın.
  4. Müşteri Deneyimi Geliştirme Programına (CEIP) Katılın ekranındaki soruları yanıtlayın.
  5. Sonraki ekranda .NET Framework 4.5 Yazılım Geliştirme Kiti özelliğini seçin. Seçimi kaldırılabilen diğer tüm özelliklerin seçimini kaldırın.
  6. İndir düğmesini seçin.
  7. İndirme konumuna gidin (2. adımda belirtilmiştir) ve aşağıdaki .NET Framework 4.5 SDK aracı yükleyici dosyalarını bulun: sdk_tools4.msi, sdk_tools4.cab
  8. Bu dosyaları kuruluşunuzdaki bir Windows Vista veya Windows 2008 Server bilgisayarına kopyalayabilirsiniz. Bu dosyaların Windows Vista veya Windows 2008 Server bilgisayarında aynı dizine kopyalanması gerekir. Not: Bu dosyaları kuruluşunuzun dışında veya başka bir yükleyicinin parçası olarak yeniden dağıtmayın.
  9. Windows Vista veya Windows 2008 Server bilgisayarında, buradaki lisans koşullarını inceleyin.
  10. NET Framework 4.5'in bilgisayarda zaten yüklü olup olmadığını kontrol edin. Aksi takdirde, www.microsoft.com adresinden .NET Framework 4.5'i indirip kurun.
  11. Yönetici ayrıcalıklarına sahip bir komut istemi açın.
  12. .NET Framework 4.5 SDK Tools yükleyici dosyalarının kopyalandığı dizine gidin.
  13. Komut satırını kullanarak .NET Framework 4.5 SDK araçlarını yükleyin: Msiexec / i sdk_tools4.msi VSEXTUI = 1

Teşekkürler Swampy. Bu yanıtı doğru olarak işaretleyeceğim, ancak birkaç şeyden bahsetmek istedim. Bunu test etmeyeceğim ama cevabınız işe yarayabilir gibi görünüyor. Bunun yerine, sadece sunucuyu yükseltiyoruz. İkincisi, bu şekilde yapmanın, yamalar ve hizmet paketleri piyasaya sürüldüğünde bileşenlerin güncellenmesine izin verip vermeyeceğini biliyor musunuz?
Zack

Bu talimatları Server 2008 ile izledim ancak ne yazık ki hala .nlp dosyalarını görüyorum ve mscorlib web dağıtımı kullanılarak dağıtımlara dahil ediliyor
Nathan

1
Çok teşekkür ederim. Jenkins kullanıyorum ve projemi .NET 4.5 kullanacak şekilde güncelliyorum. Çalışmamı Jenkins'e gönderdiğimde yanlış sürümden şikayet etmedi, System.Runtime derlemesinin eksikliğinden şikayet ediyordu. Bu çözümü dosyaların el ile kopyalanmasına tercih ediyorum çünkü bu çözümün otomatikleştirilmesi daha kolay.
Ido Ran

Windows Server 2012 kullanıyorum ve Windows 8'de (Geliştirme Makinesi) VS2012 kullanıyorum. Yalnızca MsBuild "C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ için hedeflere ihtiyacım var. SDK çok daha fazlasını içeriyor, değil mi?
Kiquenet

84

CI sunucunuzda Visual Studio olmadan çalıştırmak için, yalnızca birkaç klasörü bir geliştirme makinesinden CI sunucusundaki aynı konuma kopyalamanız gerekir. SDK'yi kurmaya gerek yoktur.

VS 2015:

  • C: \ Program Dosyaları (x86) \ MSBuild \ Microsoft \ VisualStudio \ v14.0 \ Web
  • C: \ Program Dosyaları (x86) \ MSBuild \ Microsoft \ VisualStudio \ v14.0 \ WebApplications

VS 2013:

  • C: \ Program Dosyaları (x86) \ MSBuild \ Microsoft \ VisualStudio \ v12.0 \ Web
  • C: \ Program Dosyaları (x86) \ MSBuild \ Microsoft \ VisualStudio \ v12.0 \ WebApplications

VS 2012:

  • C: \ Program Dosyaları (x86) \ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ Web
  • C: \ Program Dosyaları (x86) \ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ WebApplications

VS 2010:

  • C: \ Program Dosyaları (x86) \ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Web
  • C: \ Program Dosyaları (x86) \ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ WebApplications

.NET 4.6:

  • C: \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.6

.NET 4.5.2:

  • C: \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.5.2

.NET 4.5.1:

  • C: \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.5.1

.NET 4.5:

  • C: \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.5

.NET 4.0.1:

  • C: \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.0.1

.NET 4.0:

  • C: \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.0

Veya Matt'in önerdiği gibi , bunları projenizin bir alt dizinine kopyalayabilir ve MSBuild'inizdeki <MSBuildExtensionsPath32>konumu değiştirebilirsiniz (tipik olarak .csprojveya.vbproj ) dosyanızdaki .

Bunu yaptıktan sonra projeniz derlenecektir.

Ayrıca, yapılandırmanızda doğru ayarlandığından emin olmak için kullandığınız VisualStudioVersion ortam değişkenini açıkça Visual Studio sürümüne (VS2010 için 10.0, VS2012 için 11.0, VS2013 için 12.0, VS2015 için 14.0) ayarlamalısınız.


6
bu bizim için sorunu çözdü +1. Maven / java'dan gelen bu çılgınlık.
NimChimpsky

Referans Derlemeleri .NET Framework ile yüklenmemiş mi? MSBuild hedefleri değil. Referans Meclislerinden emin değilim, bence evet.
Kiquenet

C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v11.0'ı geliştirici makinesinden derleme makinesindeki aynı klasöre kopyalamak Team City .NET 4.5 çözümünü derleyemedi, ancak bir .NET 4.0 çözüm daha önce derlendi.
Tore Aurstad

Referans montajlar için +1. Teamcity ve MSBuild14 kullanarak bir 4.5.1 projesi oluşturuyorum ve bu, derleme aracısı makinemdeki eksik bağlantıydı.
N. Warfield

Bu, sahip olunması gereken aptalca bir sorundur, ancak ona basit bir çözümdür.
cori

25

Gönderen msdn :

Windows SDK artık eksiksiz bir komut satırı oluşturma ortamıyla birlikte gelmiyor. Bir derleyici kurmalı ve ortamı ayrı ayrı oluşturmalısınız. Derleyiciler ve bir yapı ortamı içeren eksiksiz bir geliştirme ortamına ihtiyacınız varsa, Windows SDK'nın uygun bileşenlerini içeren Visual Studio 2012 Express'i indirebilirsiniz.

Bunu düzeltmek için, klasörü C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5geliştirme makinemden (bu arada Visual Studio 2012'ye sahip) derleme aracılarına kopyalamam gerekiyordu . Bu işlemden sonra, Team City başka hata bildirmedi ve mscorlib.dll, bin klasörüne çıktı vermedi.


teşekkürler, sdk'yi indirmeye gerek kalmadan bu benim için düzeltti. (veya kabul edilen cevaptaki adımlardan herhangi biri)
Cohen

1
Bu kesinlikle kabul edilen cevap olmalıdır. Zaten zaten ref montajlı bir makineye sahip olduğunuz için çok daha kolay.
Josh Kodroff

1
@artfulhacker VS 2012 ve Win 8 SDK, Win2k8 R1'e yüklenmez. Benim gibi R1 üzerindeyseniz, referans derlemelerini kopyalamanız gerekir.
Josh Kodroff

@JoshKodroff bahsetmeyi unuttu, açıklığa kavuşturduğunuz için teşekkürler sunucu 2012 oluşturma aracılarımız var
artfulhacker

1
Ancak bu dizinde msbuild.exe'nin kopyası yok. VS2012'yi dev bilgisayarıma (yapı makinesine değil) kurdum ve hala 4.5 sürümünü görmüyorum.
ashes999

12

Microsoft Build Tools 2013 , indirme sayfasında açıklandığı gibi bu durumda yardımcı olacaktır:

Bilgisayarınızda Visual Studio yüklü değilse, yönetilen uygulamalar oluşturmak için Build Tools 2013'ü kullanabilirsiniz. Visual Basic ve C # derleyicileri de bu karşıdan yüklemeye dahil edilmiştir. (Önceki sürümlerde, bu araçlar bağımsız .NET Framework'e dahil edildi.)


1
Biraz daha açıklama, diğer programcıların referans bağlantısının nasıl çalıştığını anlamalarına yardımcı olabilir.Gelecekte olduğu gibi, referans bağlantı artık mevcut olmayabilir.
NJInamdar

VS 2013 için Microsoft Build Tools 2013 ve çok VS 2012 ? Her neyse, Microsoft Build Tools veya Visual Studio Agents 2012 stackoverflow.com/a/20373256/206730'u daha iyi yükleyin ?
Kiquenet

8

Bölümüm. Win 7 yapı makinelerimizde kurulu olanlara minimalist bir yaklaşım benimsemekten hoşlanıyor. Ancak, olası kayıt defteri anahtarı sorunları nedeniyle yalnızca dosyaları / klasörleri kopyalayıp yapıştırmayı sevmiyoruz. VS 2013'ü kurmak yerine, aşağıdaki çok daha küçük ve ücretsiz bileşenleri kurdum. Artık geliştirme ekibi VS 2013 web uygulamalarını başarıyla oluşturabilir.


Çok teşekkür ederim. Nasıl elde edileceğini hep merak etmişimdir Microsoft.WebApplication.targetsve o İzole Kabuğu hiç bilmiyordum!
William Gross

6

Bu sorunu Visual Studio Aracıları ile çözüyorum.

Visual Studio Agents 2012'yi yüklemeyi deneyebilirsiniz.

http://www.microsoft.com/en-us/download/details.aspx?id=38186


VS2013 için çalışmıyor. Aracı ve Denetleyiciyi yükledim ancak C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v12.0 oluşturulmadı
Guillaume

1
Elbette, bu yanıtı VS 2012 yerine VS 2013 ile okuyanlar için Visual Studio 2013 için Aracılar da mevcuttur.
J0e3gan

2
Gerçekten işe yarıyor! Sadece Visual Studio 2013 Shell (İzole) (x86) ve Visual Studio 2013 Shell (Tümleşik) (x86)
Andrii

@Andrii Visual Studio Agents 2012'nin yüklü olması gerekir mi? veya yalnızca Visual Studio 2012 ve 2013 Kabuk (İzole) (x86) ve Visual Studio 2012 ve 2013 Kabuk (Tümleşik) (x86) VS Aracıları yüklemeden mi?
Kiquenet

Sadece mermiler. Sadece 2013'ü yükledim
Andrii
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.