MSBuild@1 - MSBuild v1 görevi

MSBuild ile derlemek için bu görevi kullanın.

Syntax

# MSBuild v1
# Build with MSBuild.
- task: MSBuild@1
  inputs:
    solution: '**/*.sln' # string. Required. Project. Default: **/*.sln.
    #msbuildLocationMethod: 'version' # 'version' | 'location'. MSBuild. Default: version.
    #msbuildVersion: 'latest' # 'latest' | '17.0' | '16.0' | '15.0' | '14.0' | '12.0' | '4.0'. Optional. Use when msbuildLocationMethod = version. MSBuild Version. Default: latest.
    #msbuildArchitecture: 'x86' # 'x86' | 'x64'. Optional. Use when msbuildLocationMethod = version. MSBuild Architecture. Default: x86.
    #msbuildLocation: # string. Optional. Use when msbuildLocationMethod = location. Path to MSBuild. 
    #platform: # string. Platform. 
    #configuration: # string. Configuration. 
    #msbuildArguments: # string. MSBuild Arguments. 
    #clean: false # boolean. Clean. Default: false.
  # Advanced
    #maximumCpuCount: false # boolean. Build in Parallel. Default: false.
    #restoreNugetPackages: false # boolean. Restore NuGet Packages. Default: false.
    #logProjectEvents: false # boolean. Record Project Details. Default: false.
    #createLogFile: false # boolean. Create Log File. Default: false.
    #logFileVerbosity: 'normal' # 'quiet' | 'minimal' | 'normal' | 'detailed' | 'diagnostic'. Optional. Use when createLogFile = true. Log File Verbosity. Default: normal.
# MSBuild v1
# Build with MSBuild.
- task: MSBuild@1
  inputs:
    solution: '**/*.sln' # string. Required. Project. Default: **/*.sln.
    #msbuildLocationMethod: 'version' # 'version' | 'location'. MSBuild. Default: version.
    #msbuildVersion: 'latest' # 'latest' | '16.0' | '15.0' | '14.0' | '12.0' | '4.0'. Optional. Use when msbuildLocationMethod = version. MSBuild Version. Default: latest.
    #msbuildArchitecture: 'x86' # 'x86' | 'x64'. Optional. Use when msbuildLocationMethod = version. MSBuild Architecture. Default: x86.
    #msbuildLocation: # string. Optional. Use when msbuildLocationMethod = location. Path to MSBuild. 
    #platform: # string. Platform. 
    #configuration: # string. Configuration. 
    #msbuildArguments: # string. MSBuild Arguments. 
    #clean: false # boolean. Clean. Default: false.
  # Advanced
    #maximumCpuCount: false # boolean. Build in Parallel. Default: false.
    #restoreNugetPackages: false # boolean. Restore NuGet Packages. Default: false.
    #logProjectEvents: false # boolean. Record Project Details. Default: false.
    #createLogFile: false # boolean. Create Log File. Default: false.
    #logFileVerbosity: 'normal' # 'quiet' | 'minimal' | 'normal' | 'detailed' | 'diagnostic'. Optional. Use when createLogFile = true. Log File Verbosity. Default: normal.
# MSBuild v1
# Build with MSBuild.
- task: MSBuild@1
  inputs:
    solution: '**/*.sln' # string. Required. Project. Default: **/*.sln.
    #msbuildLocationMethod: 'version' # 'version' | 'location'. MSBuild. Default: version.
    #msbuildVersion: 'latest' # 'latest' | '16.0' | '15.0' | '14.0' | '12.0' | '4.0'. Optional. Use when msbuildLocationMethod = version. MSBuild Version. Default: latest.
    #msbuildArchitecture: 'x86' # 'x86' | 'x64'. Optional. Use when msbuildLocationMethod = version. MSBuild Architecture. Default: x86.
    #msbuildLocation: # string. Optional. Use when msbuildLocationMethod = location. Path to MSBuild. 
    #platform: # string. Platform. 
    #configuration: # string. Configuration. 
    #msbuildArguments: # string. MSBuild Arguments. 
    #clean: false # boolean. Clean. Default: false.
  # Advanced
    #maximumCpuCount: false # boolean. Build in Parallel. Default: false.
    #restoreNugetPackages: false # boolean. Restore NuGet Packages. Default: false.
    #logProjectEvents: false # boolean. Record Project Details. Default: false.
    #createLogFile: false # boolean. Create Log File. Default: false.

Girişler

solution - Proje
string. Gereklidir. Varsayılan değer: **/*.sln.

Birden çok proje oluşturmak istiyorsanız arama ölçütlerini belirtin. Tek klasörlü joker karakter (*) ve özyinelemeli joker karakter (**) kullanabilirsiniz. Örneğin, **.*proj tüm alt dizinlerdeki tüm MSBuild proje (.*proj) dosyalarını arar.

Belirttiğiniz projelerin bu derleme işlem hattı tarafından indirildiğinden emin olun. Depo sekmesinde:

  • TFVC kullanıyorsanız, projenin Depo sekmesindeki eşlemelerden birinin alt öğesi olduğundan emin olun.
  • Git kullanıyorsanız, projenin veya projenin oluşturmakta olduğunuz bir daldaki Git deponuzda olduğundan emin olun.

İpucu

Bir çözüm oluşturuyorsanız, MSBuild görevi yerine Visual Studio derleme görevini kullanmanızı öneririz.


msbuildLocationMethod - Msbuild
string. İzin verilen değerler: version, location (Konumu Belirtin). Varsayılan değer: version.


msbuildVersion - MSBuild Sürümü
string. İsteğe bağlı. when msbuildLocationMethod = versionkullanın. İzin verilen değerler: latest, 17.0 (MSBuild 17.0), 16.0 (MSBuild 16.0), 15.0 (MSBuild 15.0), 14.0 (MSBuild 14.0), 12.0 (MSBuild 12.0), 4.0 (MSBuild 4.0). Varsayılan değer: latest.

Tercih edilen sürüm bulunamazsa, bunun yerine bulunan en son sürüm kullanılır. Bir macOS aracıda, xbuild sürüm değerinden 15.0düşükse (Mono) kullanılır.


msbuildVersion - MSBuild Sürümü
string. İsteğe bağlı. when msbuildLocationMethod = versionkullanın. İzin verilen değerler: latest, 16.0 (MSBuild 16.0), 15.0 (MSBuild 15.0), 14.0 (MSBuild 14.0), 12.0 (MSBuild 12.0), 4.0 (MSBuild 4.0). Varsayılan değer: latest.

Tercih edilen sürüm bulunamazsa, bunun yerine bulunan en son sürüm kullanılır. Bir macOS aracıda, xbuild sürüm değerinden 15.0düşükse (Mono) kullanılır.


msbuildArchitecture - MSBuild Mimarisi
string. İsteğe bağlı. when msbuildLocationMethod = versionkullanın. İzin verilen değerler: x86 (MSBuild x86), x64 (MSBuild x64). Varsayılan değer: x86.

Çalıştırılacak MSBuild mimarisini (x86, x64) sağlar.


msbuildLocation - MSBuild Yolu
string. İsteğe bağlı. when msbuildLocationMethod = locationkullanın.

MSBuild yolunu sağlar.


platform - Platform
string.

İpucu

  • Çözüm yerine bir MSBuild projesi (.*proj) dosyasını hedefliyorsanız belirtin AnyCPU (boşluk yok).
  • Değişkenler sekmesinde (Kuyruk Saati'nde öğesini seçerekAllow) gibi BuildPlatform bir derleme değişkeni bildirin ve burada olarak $(BuildPlatform)başvurun. Bu şekilde, derlemeyi kuyruğa alıp birden çok yapılandırma oluşturmayı etkinleştirdiğinizde platformu değiştirebilirsiniz.

configuration - Yapılandırma
string.

İpucu

Değişkenler sekmesinde (Kuyruk Saati'nde öğesini seçerekAllow) gibi BuildConfiguration bir derleme değişkeni bildirin ve burada olarak $(BuildConfiguration)başvurun. Bu şekilde, derlemeyi kuyruğa alıp birden çok yapılandırma oluşturmayı etkinleştirdiğinizde platformu değiştirebilirsiniz.


msbuildArguments - MSBuild Bağımsız Değişkenleri
string.

MSBuild (Windows'da) ve xbuild'e (macOS üzerinde) geçirilen ek bağımsız değişkenleri belirtir.


clean - Temiz
boolean. Varsayılan değer: false.

False Bunu artımlı derleme yapmak istiyorsanız olarak ayarlayın. Bu ayar, özellikle de kod tabanınız büyükse derleme sürenizi azaltabilir. Bu seçeneğin, depoyu CleanFalseolarak ayarlamadığınız sürece pratik bir etkisi yoktur. True Kod projelerindeki tüm kodu yeniden derlemek istiyorsanız olarak ayarlayın. Bu, MSBuild /target:clean bağımsız değişkenine eşdeğerdir. Daha fazla bilgi için bkz . depo seçenekleri


maximumCpuCount - Paralel Derleme
boolean. Varsayılan değer: false.

MSBuild hedef yapılandırmanız paralel olarak derlemeyle uyumluysa, anahtarı MSBuild'e geçirmek /m için bu girişi de kontrol edebilirsiniz (yalnızca Windows). Hedef yapılandırmanız paralel derlemeyle uyumlu değilse, bu seçeneğin denetlenmesi derlemenizin hatalara veya aralıklı veya tutarsız derleme hatalarına yol file-in-use açmasına neden olabilir.


restoreNugetPackages - NuGet Paketlerini Geri Yükleme
boolean. Varsayılan değer: false.

Bu seçenek kullanım dışıdır. NuGet paketlerini geri yüklemek için derlemeden önce bir NuGet görevi ekleyin.


logProjectEvents - Proje Ayrıntılarını Kaydet
boolean. Varsayılan değer: false.

İsteğe bağlı olarak her proje için zaman çizelgesi ayrıntılarını kaydeder (yalnızca Windows).


createLogFile - Günlük Dosyası Oluştur
boolean. Varsayılan değer: false.

İsteğe bağlı olarak bir günlük dosyası oluşturur (yalnızca Windows).


logFileVerbosity - Günlük Dosyası AyrıntıSı
string. İsteğe bağlı. when createLogFile = truekullanın. İzin verilen değerler: quiet, minimal, normal, detailed, diagnostic. Varsayılan değer: normal.

Günlük dosyasının ayrıntı düzeyini belirtir.


Görev denetim seçenekleri

Tüm görevlerde görev girişlerine ek olarak denetim seçenekleri vardır. Daha fazla bilgi için bkz . Denetim seçenekleri ve ortak görev özellikleri.

Çıkış değişkenleri

Yok.

Açıklamalar

Visual Studio Derleme görevini mi yoksa MSBuild görevini mi kullanmalıyım?

Bir çözüm oluşturuyorsanız, çoğu durumda Visual Studio Derleme görevini kullanmanız gerekir. Bu görev otomatik olarak:

  • /p:VisualStudioVersion Özelliği sizin için ayarlar. Bu, MSBuild'i başarılı bir derleme olasılığını artıran belirli bir hedef kümesini kullanmaya zorlar.
  • MSBuild sürüm bağımsız değişkenini belirtir.

Bazı durumlarda, görevi kullanmanız MSBuild gerekebilir. Örneğin, çözüm dışında kod projeleri oluşturuyorsanız bunu kullanmanız gerekir.

MSBuild hakkında nereden daha fazla bilgi edinebilirim?

MSBuild başvurusu

MSBuild komut satırı başvurusu

Nasıl yaparım? birden çok platform için birden çok yapılandırma oluşturabilirsiniz?

  1. Değişkenler sekmesinde, yapılandırmalarınız ve platformlarınız için tanımlanmış değişkenleriniz olduğundan emin olun. Birden çok değer belirtmek için bunları virgülle ayırın. Örnek:

    • Bir .NET uygulaması için hata BuildConfiguration ayıklama ve sürüm değerleriyle belirtebilir ve herhangi bir CPU değeriyle belirtebilirsiniz BuildPlatform .
    • Bir C++ uygulaması BuildConfiguration için hata ayıklama ve sürüm değerleriyle belirtebilir ve herhangi bir x86 ve x64 değeriyle belirtebilirsiniz BuildPlatform .
  2. Seçenekler sekmesinde öğesini seçip MultiConfiguration virgülle ayırarak belirtin Multipliers. Örneğin: BuildConfiguration, BuildPlatform İşleri (her değer birleşimi için bir tane) varsa paralel olarak birden çok aracıya dağıtmak isteyip istemediğinizi seçin Parallel .

  3. Oluştur sekmesinde bu adımı seçin ve ve Configuration bağımsız değişkenlerini belirtinPlatform. Örnek:

    • Platform: $(BuildPlatform)
    • Yapılandırma: $(BuildConfiguration)

TFSBuild.proj dosyaları oluşturabilir miyim?

Dosya oluşturamazsınız TFSBuild.proj . Bu tür dosyalar ve TFS 2008tarafından TFS 2005 oluşturulur. Bu dosyalar görevler içerir ve hedefler yalnızca XAML derlemeleri kullanılarak desteklenir.

Sorun giderme

Bu bölümde, bir kullanıcının görevi kullanırken MSBuild karşılaşabileceği yaygın sorunlar için sorun giderme ipuçları sağlanır.

Derleme şu hatayla başarısız oldu: MSBuild çalıştırılırken bir iç hata oluştu

Olası nedenler
  • MSBuild sürümünde değişiklik.
  • Üçüncü taraf uzantısıyla ilgili sorunlar.
  • Visual Studio'da derleme aracısının eksik derlemelerine neden olabilecek yeni güncelleştirmeler.
  • Gerekli NuGet paketlerinden bazıları taşındı veya silindi.
Sorun giderme önerileri
Ayrıntılı günlükleri almak için tanılama ile işlem hattını çalıştırın

Sorunu tanılamak için kullanılabilen seçeneklerden biri, oluşturulan günlüklere göz atmaktır. İşlem hattı çalıştırma özetinizde uygun görevi ve işi seçerek işlem hattı günlüklerinizi görüntüleyebilirsiniz.

İşlem hattı yürütmenizin günlüklerini almak için Sorunları tanılamak için günlükleri alın

Ayrıca sorun gidermenize yardımcı olması için özelleştirilmiş bir ayrıntılı günlük ayarlayabilir ve indirebilirsiniz:

İşlem hattı tanılama günlüklerine ek olarak, sorunu ayıklamanıza ve çözmenize yardımcı olmak için daha fazla bilgi içeren diğer günlük türlerini de de de kontrol edebilirsiniz:

Hatayı yerel olarak yeniden oluşturmayı deneyin

Barındırılan derleme aracısı kullanıyorsanız, hatayı yerel olarak yeniden oluşturmayı deneyebilirsiniz. Bu, hatanın derleme aracısının mı yoksa derleme görevinin sonucu mu olduğunu daraltmanıza yardımcı olur.

Aynı MSBuild bağımsız değişkenleri kullanarak yerel makinenizde aynı komutu çalıştırın. Başvuru için MSBuild komutunu gözden geçirin.

İpucu

Sorunu yerel makinenizde yeniden oluşturabiliyorsanız, sonraki adımınız MSBuild sorununu araştırmaktır.

Microsoft tarafından barındırılan aracılar hakkında daha fazla bilgi edinin.

Kendi şirket içi barındırılan aracınızı ayarlamak ve derleme işlerini çalıştırmak için:

Başka ne yapabilirim?

MSBuild hatalarından bazıları Visual Studio'daki bir değişiklik nedeniyle oluşur, bu nedenle bu sorunun bildirilip bildirildiğini görmek için Visual Studio Geliştirici Topluluğu'da arama yapabilirsiniz. Ayrıca sorularınızı, önerilerinizi ve geri bildirimlerinizi de bekliyoruz.

Gereksinimler

Gereksinim Açıklama
İşlem hattı türleri YAML, Klasik derleme
Üzerinde çalışır Agent, DeploymentGroup
Talep Şirket içi barındırılan aracılar, bu görevi kullanan işleri çalıştırmak için aşağıdaki taleplerle eşleşen özelliklere sahip olmalıdır: msbuild
Özellikler Bu görev, işteki sonraki görevler için hiçbir talebi karşılamaz.
Komut kısıtlamaları Herhangi biri
Ayarlanabilir değişkenler Herhangi biri
Aracı sürümü 1.95.0 veya üzeri
Görev kategorisi Yapı

Ayrıca bkz.