MSBuild görevi

Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018-TFS 2015

Not

Microsoft Team Foundation Server (TFS) 2018 ve önceki sürümlerde, derleme ve yayın işlem hatları tanımlar olarak adlandırılır, çalışmalara derlemeler denir, hizmet bağlantılarına hizmet uç noktaları denir, aşamalar ortamlar olarak adlandırılır ve işler aşamalar olarak adlandırılır.

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

Erişim

MSBUILD

Azure Pipelines: Takımınız Visual Studio 2017 kullanıyorsa ve Microsoft tarafından barındırılan aracıları kullanmak istiyorsanız, BARıNDıRıLAN VS2017 varsayılan havuzunuz olarak seçtiğinizden emin olun. Bkz. Microsoft tarafından barındırılan aracılar.

YAML kod parçacığı

# MSBuild
# Build with MSBuild
- task: MSBuild@1
  inputs:
    #solution: '**/*.sln' 
    #msbuildLocationMethod: 'version' # Optional. Options: version, location
    #msbuildVersion: 'latest' # Optional. Options: latest, 16.0, 15.0, 14.0, 12.0, 4.0
    #msbuildArchitecture: 'x86' # Optional. Options: x86, x64
    #msbuildLocation: # Optional
    #platform: # Optional
    #configuration: # Optional
    #msbuildArguments: # Optional
    #clean: false # Optional
    #maximumCpuCount: false # Optional
    #restoreNugetPackages: false # Optional
    #logProjectEvents: false # Optional
    #createLogFile: false # Optional
    #logFileVerbosity: 'normal' # Optional. Options: quiet, minimal, normal, detailed, diagnostic

Bağımsız değişkenler

Bağımsız Değişken Description
solution
Project

Istenir Tek bir proje oluşturmak istiyorsanız ... düğmesine tıklayın ve projeyi seçin.

Birden çok proje derlemek istiyorsanız, arama ölçütlerini belirtin. Tek klasörbir joker karakter ( * ) ve özyinelemeli joker karakterler () kullanabilirsiniz ** . Örneğin, **.*proj tüm alt dizinlerdeki 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 bir alt öğesi olduğundan emin olun.
  • Git kullanıyorsanız, proje ya da projenin git deponuzda olduğundan emin olun ve yeniden oluşturmak'.

İpucu: bir çözüm oluşturuyorsanız, MSBuild görevi yerine Visual Studio Build görevini kullanmanızı öneririz.


Varsayılan değer: * */* . sln
msbuildLocationMethod
MSBuild
(İsteğe bağlı)
Varsayılan değer: sürüm
msbuildVersion
MSBuild sürümü
Seçim Tercih edilen sürüm bulunamazsa, bulunan en son sürüm bunun yerine kullanılacaktır. MacOS aracısında, sürüm 15,0 ' den düşükse xbuild (mono) kullanılacaktır
Varsayılan değer: en son
msbuildArchitecture
MSBuild mimarisi
Seçim İsteğe bağlı olarak, çalıştırılacak MSBuild 'in mimarisini (x86, x64) sağlama
Varsayılan değer: x86
msbuildLocation
MSBuild yolu
Seçim İsteğe bağlı olarak MSBuild yolunu sağlayın
platform
Platform

Seçim , Veya gibi derlemek istediğiniz platformu belirtin Win32 x86 x64 any cpu .

İpuçları:

  • Bir çözüm yerine bir MSBuild proje (. *proj) dosyasını hedefliyorsanız AnyCPU (boşluk yok) öğesini belirtin.
  • BuildPlatformDeğişkenler sekmesinde (kuyruk sırasında Izin ver ' i seçerek) gibi bir yapı değişkeni bildirin ve burada olarak buraya başvurun $(BuildPlatform) . Bu şekilde, derlemeyi kuyruğa aldığınızda ve birden çok yapılandırma oluşturmayı etkinleştirdiğinizde platformu değiştirebilirsiniz.
configuration
Yapılandırma

Seçim Veya gibi derlemek istediğiniz yapılandırmayı belirtin debug release .

İpucu: BuildConfiguration değişkenler sekmesinde (kuyruk sırasında Izin ver ' i seçerek) gibi bir yapı değişkeni bildirin ve burada olarak buraya başvurun $(BuildConfiguration) . Bu şekilde, derlemeyi kuyruğa aldığınızda ve birden çok yapılandırma oluşturmayı etkinleştirdiğinizde platformu değiştirebilirsiniz.

msbuildArguments
MSBuild bağımsız değişkenleri
Seçim MSBuild 'e (Windows 'da) ve xbuild 'e (macOS 'ta) geçirilen ek bağımsız değişkenler
clean
Temizle

Bunu artımlı bir derleme yapmak istiyorsanız false olarak ayarlayın. Bu ayar, özellikle kod tabanınızın büyük olması halinde derleme süresini azaltabilir. Temiz depoyu yanlış olarak ayarlamadığınız takdirde bu seçeneğin pratik etkisi yoktur.

Kod projelerindeki tüm kodu yeniden oluşturmak istiyorsanız true olarak ayarlayın. Bu, MSBuild /target:clean bağımsız değişkenine eşdeğerdir.

Bkz. Depo seçenekleri


Varsayılan değer: false
maximumCpuCount
Paralel olarak oluştur
Seçim MSBuild hedef yapılandırmanız paralel olarak oluşturma ile uyumluysa, isteğe bağlı olarak/m anahtarını MSBuild 'e (yalnızca Windows) geçirmek için bu girişi kontrol edebilirsiniz. Hedef yapılandırmanız paralel olarak oluşturma ile uyumlu değilse, bu seçeneğin işaretlenmesi, derleme sırasında dosya kullanımı hatalarıyla veya aralıklı veya tutarsız derleme hatalarına neden olabilir.
Varsayılan değer: false
restoreNugetPackages
NuGet paketlerini geri yükle
(Önemli) Bu seçenek kullanım dışıdır. Bu onay kutusunu temizleyip, bunun yerine NuGet yükleyici derleme görevini kullanın.
Varsayılan değer: false
Gelişmiş
logProjectEvents
Proje kaydetme ayrıntıları
Her proje için isteğe bağlı olarak zaman çizelgesi ayrıntılarını kaydetme (yalnızca Windows)
Varsayılan değer: false
createLogFile
Günlük dosyası oluştur

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


Varsayılan değer: false
logFileVerbosity
Günlük dosyası ayrıntı düzeyi

İsteğe bağlı günlük dosyası ayrıntı düzeyi


Varsayılan değer: normal
Denetim seçenekleri

Açık kaynak

Bu görev GitHub 'daaçık kaynaktır. Geribildirim ve katılımlar hoş geldiniz.

SSS

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 Build görevinikullanmanız gerekir. Bu görev otomatik olarak:

  • /p:VisualStudioVersionÖzelliği sizin için ayarlar. Bu, MSBuild 'in başarılı bir derleme olasılığını artıran belirli bir hedef kümesini kullanmasına zorlar.

  • MSBuild sürümü bağımsız değişkenini belirtir.

Bazı durumlarda, MSBuild görevini kullanmanız gerekebilir. Örneğin, bir çözümden ayrı kod projeleri oluşturuyorsanız onu kullanmanız gerekir.

MSBuild hakkında nereden daha fazla bilgi edinebilirim?

MSBuild başvurusu

MSBuild komut satırı başvurusu

Birden çok platform için birden çok yapılandırma Nasıl yaparım? mı?

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

    Örneğin, bir .NET uygulaması için şunları belirtebilirsiniz:

    Name Değer
    BuildConfiguration hata ayıklama, yayın
    Kimliğinin BuildPlatform herhangi bir CPU

    Örneğin, bir C++ uygulaması için şunları belirtebilirsiniz:

    Name Değer
    BuildConfiguration hata ayıklama, yayın
    Kimliğinin BuildPlatform x86, x64
  2. Seçenekler sekmesinde, Multiconfiguration ' ı seçin ve virgülle ayırarak Çeşitlilileri belirtin. Örnek: BuildConfiguration, BuildPlatform

    İşleri (her bir değer birleşimi), varsa paralel olarak birden çok aracıya dağıtmak istiyorsanız paralel ' ı seçin.

  3. Derleme sekmesinde, bu adımı seçin ve platform ve yapılandırma bağımsız değişkenlerini belirtin. Örnek:

    • Platformunun $(BuildPlatform)
    • Yapılandırmada $(BuildConfiguration)

TFSBuild. proj dosyalarını oluşturabilir miyim?

TFSBuild. proj dosyalarını derlenemez. Bu tür dosyalar TFS 2005 ve 2008 tarafından oluşturulmuştur. Bu dosyalar, görevleri ve hedefleri içerir ve yalnızca xaml derlemelerikullanılarak desteklenir.

Bir aracıya ihtiyacım var mı?

Yapınızı veya sürümünüzü çalıştırmak için en az bir aracınız olması gerekir.

Sorun yaşıyorum. Sorunları nasıl giderebilirim?

Bkz. derleme ve yayın sorunlarını giderme.

Varsayılan bir aracı havuzu seçemiyorum ve derleme veya yayınımı sıraya alamıyorum. Bu Nasıl yaparım? düzeltilsin mi?

Bkz. Aracı havuzları.

NuGet Push görevlerim şu hata ile başarısız oluyor: "hata: yerel veren sertifikası alınamıyor". Bunu nasıl giderebilirim?

Bu, güvenilen kök sertifika eklenerek düzeltilebilir. NODE_EXTRA_CA_CERTS=fileOrtam değişkenini yapı aracıya ekleyebilir veya NODE.EXTRA.CA.CERTS=file görev değişkenini işlem hattınızda ekleyebilirsiniz. Daha fazla ayrıntı için bkz. ortam değişkenleri .

TFS 'yi şirket içinde kullanıyorum ve bu özelliklerden bazılarını görmüyorum. Neden olmasın?

Bu özelliklerden bazıları yalnızca Azure Pipelines kullanılabilir ve şirket içinde henüz kullanılabilir değil. TFS 'nin en son sürümüne yükselttiysenizbazı özellikler şirket içinde kullanılabilir.

Sorun giderme

Bu bölümde, bir kullanıcının MSBuild görevini kullanırken karşılaşabileceği yaygın sorunlara yönelik sorun giderme ipuçları verilmektedir.

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ılı sorunlar.
  • Visual Studio 'da, derleme aracısında eksik derlemelere neden olabilecek yeni güncelleştirmeler.
  • Gerekli NuGet paketlerinden bazılarını taşımış veya silmiş.

Sorun giderme önerileri

Ayrıntılı günlükleri almak için tanılama ile işlem hattını çalıştırma

Sorunu tanılamak için kullanılabilen seçeneklerden biri, oluşturulan günlüklere göz atalım. Ardışık düzen günlüklerinizi, işlem hattı çalıştırma özetinizdeki uygun görevi ve işi seçerek görüntüleyebilirsiniz.

İşlem hattı yürütme günlüklerini almak için günlükleri alın sorunları tanılama

Ayrıca, sorun gidermenize yardımcı olmak için özelleştirilmiş bir ayrıntılı günlük oluşturup indirebilirsiniz:

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

Hatayı yerel olarak yeniden oluşturmaya çalışın

Barındırılan bir yapı aracısı kullanıyorsanız, hatayı yerel olarak yeniden oluşturmaya çalışmak isteyebilirsiniz. Bu, hatanın derleme aracısının veya yapı görevinin sonucu olup olmadığını daraltmanıza yardımcı olur.

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

İpucu

Sorunu yerel makinenizde yeniden üretememesi durumunda, bir sonraki adımınız MSBuild sorununu araştırmanız gerekir.

Microsoft tarafından barındırılan aracılar hakkında daha fazla bilgi için

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

Başka ne yapabilirim?

Bu sayfanın en altında, Open Closed ekibimiz tarafından daha önce çözümlenen benzer bir sorun olup olmadığını görmek için ve sekmelerinde GitHub sorunlarını gözden geçirin.

MSBuild hatalarının bazılarına Visual Studio 'daki bir değişiklik neden olduğundan, bu sorunun raporlanıp raporlanmadığını görmek için Visual Studio Geliştirici topluluğu 'nda arama yapabilirsiniz. Ayrıca Sorularınıza, önerilere ve geri bildirimlerinize de hoş geldiniz.