C++ projeleri için MSBuild iç işlevleri
IDE'de proje özelliklerini ayarladığınızda ve sonra projeyi kaydettiğinizde, Visual Studio proje ayarlarını proje dosyanıza yazar. Proje dosyası, projenize özgü ayarlar içerir. Ancak, projenizi oluşturmak için gereken tüm ayarları içermez. Proje dosyası, ek destek dosyaları ağı içeren öğeler içerirImport
. Destek dosyaları, projeyi oluşturmak için gereken kalan özellikleri, hedefleri ve ayarları içerir.
Destek dosyalarındaki hedeflerin ve özelliklerin çoğu yalnızca derleme sistemini uygulamak için mevcuttur. Bu makalede, MSBuild komut satırında belirtebileceğiniz yararlı hedefler ve özellikler ele alınmaktadır. Daha fazla hedefi ve özelliği keşfetmek için destek dosyası dizinlerindeki dosyaları inceleyin.
Destek Dosyası Dizinleri
Varsayılan olarak, birincil Visual Studio destek dosyaları aşağıdaki dizinlerde bulunur. Bu bilgiler sürüme özgüdür.
Visual Studio 2022 ve 2019
%VSINSTALLDIR%MSBuild\Microsoft\VC\<version>\
Hedefler tarafından kullanılan birincil hedef dosyaları (
.targets
) ve özellik dosyalarını (.props
) içerir. Varsayılan olarak,$(VCTargetsPath)
makro bu dizine başvurur. Yer<version>
tutucu Visual Studio sürümüne başvurur: Visual Studio 2022 için v170, Visual Studio 2019 için v160 veya Visual Studio 2017 için v150.%VSINSTALLDIR%MSBuild\Microsoft\VC\<version>\Platforms\<platform>\
Üst dizinindeki hedefleri ve özellikleri geçersiz kılan platforma özgü hedef ve özellik dosyalarını içerir. Bu dizin, bu dizindeki hedefler tarafından kullanılan görevleri tanımlayan bir DLL de içerir. Yer
<platform>
tutucu ARM, ARM64, Win32 veya x64 alt dizinini temsil eder.%VSINSTALLDIR%MSBuild\Microsoft\VC\<version>\Platforms\<platform>\PlatformToolsets\<toolset>\
Derlemenin belirtilen
<toolset>
kullanarak C++ uygulamaları oluşturmasını sağlayan dizinleri içerir. Yer<platform>
tutucu ARM, ARM64, Win32 veya x64 alt dizinini temsil eder. Yer tutucu araç<toolset>
takımı alt dizinini temsil eder.
Visual Studio 2017
%VSINSTALLDIR%Common7\IDE\VC\VCTargets\
Hedefler tarafından kullanılan birincil hedef dosyaları (
.targets
) ve özellik dosyalarını (.props
) içerir. Varsayılan olarak,$(VCTargetsPath)
makro bu dizine başvurur.%VSINSTALLDIR%Common7\IDE\VC\VCTargets\Platforms\<platform>\
Üst dizinindeki hedefleri ve özellikleri geçersiz kılan platforma özgü hedef ve özellik dosyalarını içerir. Bu dizin, bu dizindeki hedefler tarafından kullanılan görevleri tanımlayan bir DLL de içerir. Yer
<platform>
tutucu ARM, ARM64, Win32 veya x64 alt dizinini temsil eder.%VSINSTALLDIR%Common7\IDE\VC\VCTargets\Platforms\<platform>\PlatformToolsets\<toolset>\
Derlemenin belirtilen
<toolset>
kullanarak C++ uygulamaları oluşturmasını sağlayan dizinleri içerir. Yer<platform>
tutucu ARM, Win32 veya x64 alt dizinini temsil eder. Yer tutucu araç<toolset>
takımı alt dizinini temsil eder.
Visual Studio 2015 ve öncesi
<drive>:\Program Files[ (x86)]\MSBuild\Microsoft.Cpp\v4.0\<version>\
Hedefler tarafından kullanılan birincil hedef dosyaları (
.targets
) ve özellik dosyalarını (.props
) içerir. Varsayılan olarak, $(VCTargetsPath) makro bu dizine başvurur.<drive>:\Program Files[ (x86)]\MSBuild\Microsoft.Cpp\v4.0\<version>\Platforms\<platform>\
Üst dizinindeki hedefleri ve özellikleri geçersiz kılan platforma özgü hedef ve özellik dosyalarını içerir. Bu dizin, bu dizindeki hedefler tarafından kullanılan görevleri tanımlayan bir DLL de içerir. Yer
<platform>
tutucu ARM, Win32 veya x64 alt dizinini temsil eder.<drive>:\Program Files[ (x86)]\MSBuild\Microsoft.Cpp\v4.0\<version>\Platforms\<platform>\PlatformToolsets\<toolset>\
Derlemenin belirtilen
<toolset>
kullanarak C++ uygulamaları oluşturmasını sağlayan dizinleri içerir. Yer<version>
tutucu, Visual Studio 2012 için V110, Visual Studio 2013 için V120 ve Visual Studio 2015 için V140'tır. Yer<platform>
tutucu ARM, Win32 veya x64 alt dizinini temsil eder. Yer tutucu araç<toolset>
takımı alt dizinini temsil eder. Örneğin, Visual Studio 2015 araç takımını kullanarak Windows uygulamaları oluşturmak için v140'tır. Veya Visual Studio 2013 araç takımını kullanarak Windows XP için derlemeye v120_xp.<drive>:\Program Files[ (x86)]\MSBuild\Microsoft.Cpp\v4.0\Platforms\<platform>\PlatformToolsets\<toolset>\
Derlemenin Visual Studio 2008 veya Visual Studio 2010 uygulamaları oluşturmasını sağlayan yollar içermez
<version>
. Bu sürümlerde yer<platform>
tutucu Itanium, Win32 veya x64 alt dizinini temsil eder. Yer tutucusu<toolset>
v90 veya v100 araç kümesi alt dizinini temsil eder.
Destek Dosyaları
Destek dosyası dizinleri şu uzantılara sahip dosyaları içerir:
Dahili | Açıklama |
---|---|
.targets |
Hedef tarafından yürütülen görevleri belirten XML öğelerini içerir Target . Görev parametrelerine dosya ve komut satırı seçenekleri atamak için kullanılan , , ve kullanıcı tanımlı Item öğeler de içerebilirPropertyGroup . ItemDefinitionGroup ItemGroup Daha fazla bilgi için bkz Target . Öğe (MSBuild). |
.props |
Derleme sırasında kullanılan dosya ve parametre ayarlarını belirten ve kullanıcı tanımlı Property XML öğelerini içerirProperty Group .Ayrıca ek ayarlar belirten ve kullanıcı tanımlı Item XML öğeleri de içerebilirItemDefinitionGroup . Öğe tanımı grubunda tanımlanan öğeler özelliklere benzer, ancak komut satırından erişilemiyor. Visual Studio proje dosyaları genellikle ayarları göstermek için özellikler yerine öğeleri kullanır.Daha fazla bilgi için bkz ItemGroup . Öğe (MSBuild),ItemDefinitionGroup Öğe (MSBuild)veItem Öğesi (MSBuild). |
.xml |
IDE kullanıcı arabirimi öğelerini bildiren ve başlatan XML öğelerini içerir. Örneğin, özellik sayfaları, özellik sayfaları, metin kutusu denetimleri ve liste kutusu denetimleri. Dosyalar .xml MSBuild'i değil doğrudan IDE'yi destekler. Ancak, IDE özelliklerinin değerleri derleme özelliklerine ve öğelerine atanır.Dosyaların çoğu .xml yerel ayara özgü bir alt dizindedir. Örneğin, İngilizce-ABD bölgesi dosyaları içindedir $(VCTargetsPath)\1033\ . |
Kullanıcı hedefleri ve özellikleri
MSBuild'i etkili bir şekilde kullanmak için, hangi özelliklerin ve hedeflerin yararlı ve ilgili olduğunu bilmenize yardımcı olur. Özelliklerin ve hedeflerin çoğu Visual Studio derleme sisteminin uygulanmasına yardımcı olur ve kullanıcıyla ilgili değildir. Bu bölümde, kullanıcı odaklı özellikler ve bilinmeye değer hedefler açıklanmaktadır.
PlatformToolset
mülk
özelliği, PlatformToolset
derlemede hangi MSVC araç takımının kullanıldığını belirler. Varsayılan olarak, geçerli araç takımı kullanılır. Bu özellik ayarlandığında, değeri yolu oluşturmak için değişmez dizelerle birleştirilir. Belirli bir platform için proje oluşturmak için gereken özellik ve hedef dosyaları içeren dizindir. Platform araç takımının bu platform araç takımı sürümü kullanılarak derlenebilmesi için yüklenmesi gerekir.
Örneğin, uygulamanızı derlemek v140
için özelliğini Visual Studio 2015 araçlarını ve kitaplıklarını kullanacak şekilde ayarlayınPlatformToolset
:
msbuild myProject.vcxproj /p:PlatformToolset=v140
PreferredToolArchitecture
mülk
özelliği, PreferredToolArchitecture
derlemede 32 bit veya 64 bit derleyici ve araçların kullanılıp kullanılmadığını belirler. Bu özellik çıkış platformu mimarisini veya yapılandırmasını etkilemez. Varsayılan olarak, bu özellik ayarlı değilse MSBuild derleyici ve araçların x86 sürümünü kullanır.
Örneğin, uygulamanızı derlemek x64
için 64 bit derleyici ve araçları kullanmak için özelliğini olarak ayarlayınPreferredToolArchitecture
:
msbuild myProject.vcxproj /p:PreferredToolArchitecture=x64
UseEnv
mülk
Varsayılan olarak, geçerli projenin platforma özgü ayarları , , , LIB
, , CONFIGURATION
ve PLATFORM
ortam değişkenlerini geçersiz kılarPATH
. LIBPATH
INCLUDE
UseEnv
Ortam değişkenlerinin geçersiz kılınmamasını sağlamak için özelliğini true
olarak ayarlayın.
msbuild myProject.vcxproj /p:UseEnv=true
Hedefler
Visual Studio destek dosyalarında yüzlerce hedef vardır. Ancak, çoğu kullanıcının yoksayabileceği sistem odaklı hedeflerdir. Sistem hedeflerinin çoğuna bir alt çizgi ()_
eklenmiştir veya , , Compute
, Before
After
, Pre
veya Post
ile PrepareFor
başlayan bir ada sahiptir.
Aşağıdaki tabloda birkaç kullanışlı kullanıcı odaklı hedef listelenmiştir.
Hedef | Açıklama |
---|---|
BscMake |
Microsoft Gözatma Bilgileri Bakım Yardımcı Programı aracını bscmake.exe yürütür. |
Build |
Projeyi oluşturur. Bu hedef, bir proje için varsayılandır. |
ClCompile |
MSVC derleyici aracını cl.exe yürütür. |
Clean |
Geçici ve ara derleme dosyalarını siler. |
Lib |
Microsoft 32 Bit Kitaplık Yöneticisi aracını lib.exe yürütür. |
Link |
MSVC bağlayıcı aracını link.exe yürütür. |
ManifestResourceCompile |
Bir bildirimdeki kaynakların listesini ayıklar ve ardından Microsoft Windows Kaynak Derleyicisi aracını rc.exe yürütür. |
Midl |
Microsoft Arabirim Tanım Dili (MIDL) derleyici aracını midl.exe yürütür. |
Rebuild |
Projenizi temizler ve sonra oluşturur. |
ResourceCompile |
Microsoft Windows Kaynak Derleyicisi aracını rc.exe yürütür. |
XdcMake |
XML Belgeleri aracını xdcmake.exe yürütür. |
Xsd |
XML Şema Tanımı aracını xsd.exe yürütür. Nota bakın. |
Not
Visual Studio 2017 ve sonraki sürümlerde dosyalar için .xsd
C++ proje desteği kullanım dışıdır. GaC'ye el ile ekleyerek CppCodeProvider.dll
kullanmaya Microsoft.VisualC.CppCodeProvider
devam edebilirsiniz.
Ayrıca bkz.
MSBuild görev başvurusu
BscMake
görev
CL
görev
CPPClean
görev
LIB
görev
Link
görev
MIDL
görev
MT
görev
RC
görev
SetEnv
görev
VCMessage
görev
XDCMake
görev