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 = version
kullanı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.0
düşükse (Mono) kullanılır.
msbuildVersion
- MSBuild Sürümü
string
. İsteğe bağlı. when msbuildLocationMethod = version
kullanı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.0
düşükse (Mono) kullanılır.
msbuildArchitecture
- MSBuild Mimarisi
string
. İsteğe bağlı. when msbuildLocationMethod = version
kullanı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 = location
kullanı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çerek
Allow
) gibiBuildPlatform
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 Clean
False
olarak 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 = true
kullanı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 komut satırı başvurusu
Nasıl yaparım? birden çok platform için birden çok yapılandırma oluşturabilirsiniz?
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 belirtebilirsinizBuildPlatform
. - Bir C++ uygulaması
BuildConfiguration
için hata ayıklama ve sürüm değerleriyle belirtebilir ve herhangi bir x86 ve x64 değeriyle belirtebilirsinizBuildPlatform
.
- Bir .NET uygulaması için hata
Seçenekler sekmesinde öğesini seçip
MultiConfiguration
virgülle ayırarak belirtinMultipliers
. Ö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çinParallel
.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)
- Platform:
TFSBuild.proj dosyaları oluşturabilir miyim?
Dosya oluşturamazsınız TFSBuild.proj
. Bu tür dosyalar ve TFS 2008
tarafı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
- Hatayı yerel olarak yeniden oluşturmayı deneyin
- Başka ne yapabilirim?
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:
- Çalışan tanılama günlükleri
- Aracı tanılama günlükleri
- Diğer günlükler (Ortam ve özellikler)
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:
- Şirket içinde barındırılan Windows aracıları
- Şirket içinde barındırılan Linux aracıları
- Şirket içinde barındırılan macOS aracıları
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ı |