MSBuild ayrılmış ve iyi bilinen özellikleri

MSBuild, proje dosyası ve MSBuild ikili dosyaları hakkındaki bilgileri depolayan önceden tanımlanmış özellikler kümesi sağlar. Bu özellikler, diğer MSBuild özellikleriyle aynı şekilde değerlendirilir. Örneğin, özelliğini kullanmak MSBuildProjectFile için yazın $(MSBuildProjectFile).

MSBuild, ayrılmış ve iyi bilinen özellikleri önceden tanımlanmış olarak ayarlamak için aşağıdaki tabloda yer alan değerleri kullanır. Ayrılmış özellikler geçersiz kılınamaz ve gelişmiş senaryolar dışında iyi bilinen özelliklerin çoğu geçersiz kılınmamalıdır.

Ayrılmış ve iyi bilinen özellikler

Bu bölümdeki tabloda MSBuild önceden tanımlanmış özellikler gösterilmektedir. Tablodaki örnek sütun, konumunda C:\Source\Repos\ConsoleApp1\ConsoleApp1olduğu varsayılan aşağıdaki örnek proje dosyasıyla ilgilidir ve MSBuild özel komut satırı seçenekleri olmadan çağrıldığında bu özelliklerin proje dosyasında erişildiğinde sahip olduğu değerlerin bir örneğini gösterir.

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>
</Project>
Mülkiyet Ayrılmış veya iyi bilinen Description Example
FrameworkSDKRoot Tanınmış .NET Framework araçları için kök klasörün yolu. C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\
InnerBuildProperty Tanınmış Çoklu hedef oluşturma derleme boyutunu tanımlayan özellik adını belirtir (yalnızca geçerli derleme bir graf derlemesiyse geçerlidir). TargetFramework
InnerBuildPropertyValues Tanınmış için InnerBuildProperty olası değerleri tutan özellik adını belirtir (yalnızca geçerli derleme bir graf derlemesiyse geçerlidir). TargetFrameworks
IsGraphBuild Tanınmış True bu bir graf derlemesiyse; yani, -graphBuild seçenek etkindir. Bu seçenek, MSBuild'in bir proje grafı oluşturup derlediğini gösterir. Grafik oluşturmak, form bağımlılıklarına yönelik proje başvurularını tanımlamayı içerir. Bu grafiğin oluşturulması, geleneksel MSBuild zamanlamasından farklı olarak, bunlara başvuran projelerden önce proje başvuruları derlemeyi içerir.
MSBuildAssemblyVersion Rezerve edildi Projeyi derlemek için kullanılan MSBuild derlemelerinin sürümü. 17.0
MSBuildBinPath Rezerve edildi Kullanılmakta olan MSBuild ikili dosyalarının bulunduğu klasörün mutlak yolu (örneğin, C:\Windows\Microsoft.Net\Framework\<versionNumber>). BU özellik, MSBuild dizinindeki dosyalara başvurmanız gerekiyorsa kullanışlıdır.

Bu özelliğe son ters eğik çizgiyi eklemeyin.
C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Current\Bin\amd64
MSBuildDisableFeaturesFromVersion Rezerve edildi MSBuild ve Microsoft SDK'ları tarafından değişiklik dalgalarını yönetmek için kullanılır.
MSBuildExtensionsPath Tanınmış .NET Framework 4'te kullanıma sunulmuştur: ve MSBuildExtensionsPathvarsayılan değerleri MSBuildExtensionsPath32 arasında fark yoktur. Önceki sürümlerde varsayılan değerinin davranışını etkinleştirmek için ortam değişkenini MSBUILDLEGACYEXTENSIONSPATH null olmayan bir değere MSBuildExtensionsPath ayarlayabilirsiniz.

.NET Framework 3.5 ve önceki sürümlerinde, varsayılan değeri MSBuildExtensionsPath geçerli işlemin bit değerine bağlı olarak \Program Files\ veya \Program Files (x86) klasörünün altındaki MSBuild alt klasörünün yolunu gösterir. Örneğin, 64 bit makinedeki 32 bit işlem için bu özellik \Program Files (x86) klasörüne işaret eder. 64 bit makinedeki 64 bit işlem için bu özellik \Program Files klasörüne işaret eder.

Bu özelliğe son ters eğik çizgiyi eklemeyin.

Bu konum, özel hedef dosyaları yerleştirmek için kullanışlı bir yerdir. Örneğin, hedef dosyalarınız \Program Files\MSBuild\MyFiles\Northwind.targets konumunda yüklenebilir ve sonra şu XML kodu kullanılarak proje dosyalarına içeri aktarılabilir:

<Import Project="$(MSBuildExtensionsPath)\MyFiles\Northwind.targets"/>
C:\Program Files\Microsoft Visual Studio\2022\MSBuild
MSBuildExtensionsPath32 Tanınmış \Program Files veya \Program Files(x86) klasörünün altındaki MSBuild alt klasörünün yolu. Yol her zaman 32 bit makinedeki 32 bit \Program Files (x86) klasörüne ve 64 bit makinede \Program Files klasörüne işaret eder." Ayrıca MSBuildExtensionsPath bkz. ve MSBuildExtensionsPath64.

Bu özelliğe son ters eğik çizgiyi eklemeyin.
C:\Program Files\Microsoft Visual Studio\2022\MSBuild
MSBuildExtensionsPath64 Tanınmış \Program Files klasörünün altındaki MSBuild alt klasörünün yolu. 64 bit makine için bu yol her zaman \Program Files klasörünü gösterir. 32 bit makine için bu yol boş olur. Ayrıca MSBuildExtensionsPath bkz. ve MSBuildExtensionsPath32.

Bu özelliğe son ters eğik çizgiyi eklemeyin.
C:\Program Files\MSBuild
MSBuildFileVersion Rezerve edildi Projeyi derlemek için kullanılan MSBuild derlemelerinin 4 bölümü. 17.4.0.46505
MSBuildFrameworkToolsPath Tanınmış MSBuild'i yürütmekte olan .NET Framework araçlarının yolu, sonunda eğik çizgi ile oluşturulmuştu. C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\
MSBuildFrameworkToolsPath32 Tanınmış MSBuild'i yürütmekte olan aynı çerçeve sürümü için .NET Framework araçlarının 32 bit sürümünün yolu, sonunda eğik çizgi ile oluşturulmuştu. C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\
MSBuildFrameworkToolsPath64 Tanınmış MSBuild'i yürütmekte olan aynı çerçeve sürümü için .NET Framework araçlarının 64 bit sürümünün yolu, sonunda eğik çizgi ile oluşturulmuştu. C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\
MSBuildInteractive Rezerve edildi true MSBuild etkileşimli olarak çalışıyorsa, kullanıcı girişlerine izin verir. Bu ayar komut satırı seçeneği tarafından -interactive denetlenur. false
MSBuildLastTaskResult Rezerve edildi true önceki görev hata olmadan tamamlandıysa (uyarı olsa bile) veya false önceki görevde hatalar varsa. Genellikle, bir görevde hata oluştuğunda, hata bu projede gerçekleşen son şeydir. Bu nedenle, bu özelliğin değeri şu senaryolar dışında hiçbir zaman falsedeğeri değildir:

ContinueOnError- Task öğesinin (MSBuild) özniteliği (veya ) veya WarnAndContinuetrueolarak ErrorAndContinue ayarlandığında.

- Alt Target olduğunda.
true
MSBuildNodeCount Rezerve edildi Derleme sırasında kullanılan en fazla eşzamanlı işlem sayısı. Bu, komut satırında -maxcpucount için belirttiğiniz değerdir. -maxcpucount değerini bir değer belirtmeden belirttiyseniz, MSBuildNodeCount bilgisayardaki işlemci sayısını belirtir. Daha fazla bilgi için bkz. Komut satırı başvurusu ve Paralel olarak birden çok proje oluşturma. 1
MSBuildOverrideTasksPath Tanınmış Standart görevlerin özel sürümlerini sağlamak için .overridetasks kullanılabilecek dosyaların aranacağı konum. Bkz . MSBuild görevleri.

Yola son ters eğik çizgiyi eklemeyin.
MSBuildProgramFiles32 Rezerve edildi 32 bit program klasörünün konumu; örneğin, C:\Program Files (x86).

Bu özelliğe son ters eğik çizgiyi eklemeyin.
C:\Program Files (x86)
MSBuildProjectDefaultTargets Rezerve edildi öğesinin özniteliğinde DefaultTargets belirtilen hedeflerin Project tam listesi. Örneğin, aşağıdaki Project öğenin bir özellik değeri MSBuildDefaultTargetsolacaktırA;B;C:

<Project DefaultTargets="A;B;C" >
Build
MSBuildProjectDirectory Rezerve edildi Proje dosyasının bulunduğu dizinin mutlak yolu, örneğin C:\MyCompany\MyProduct.

Bu özelliğe son ters eğik çizgiyi eklemeyin.
C:\Source\Repos\ConsoleApp1\ConsoleApp1
MSBuildProjectDirectoryNoRoot Rezerve edildi Kök sürücü hariç özelliğinin değeri MSBuildProjectDirectory .

Bu özelliğe son ters eğik çizgiyi eklemeyin.
Source\Repos\ConsoleApp1\ConsoleApp1
MSBuildProjectExtension Rezerve edildi Dönem de dahil olmak üzere proje dosyasının dosya adı uzantısı; örneğin, .proj. .csproj
MSBuildProjectFile Rezerve edildi Dosya adı uzantısı dahil olmak üzere proje dosyasının tam dosya adı; örneğin, MyApp.proj. ConsoleApp1.csproj
MSBuildProjectFullPath Rezerve edildi Dosya adı uzantısı dahil olmak üzere proje dosyasının mutlak yolu ve tam dosya adı; örneğin, C:\MyCompany\MyProduct\MyApp.proj. c:\Source\Repos\ConsoleApp1\ConsoleApp1\ConsoleApp1.csproj
MSBuildProjectName Rezerve edildi Dosya adı uzantısı olmayan proje dosyasının dosya adı; örneğin, MyApp. ConsoleApp1
MSBuildRuntimeType Rezerve edildi Şu anda yürütülmekte olan çalışma zamanının türü. MSBuild 15'te kullanıma sunulmuştur. Değer tanımlanmamış olabilir (MSBuild 15'den önce), Full MSBuild'in masaüstü .NET Framework'te çalıştığını, Core MSBuild'in .NET Core üzerinde çalıştığını (örneğin , ) veya dotnet build MSBuild'in MonoMono üzerinde çalıştığını gösterir. Full
MSBuildStartupDirectory Rezerve edildi MSBuild'in çağrıldığı klasörün mutlak yolu. Bu özelliği kullanarak, her dizinde dirs.proj< dosyaları oluşturmadan> proje ağacında belirli bir noktanın altındaki her şeyi oluşturabilirsiniz. Bunun yerine, burada gösterildiği gibi tek bir projeniz vardır; örneğin, c:\traversal.proj:

<Project ...> <ItemGroup> <ProjectFiles Include="$ (MSBuildStartupDirectory) **\*.csproj"/> </ItemGroup> <Target Name="build"> <MSBuild Projects="@(ProjectFiles)"/> </Target> </Project>

Ağaçta herhangi bir noktada derlemek için şunu yazın:

msbuild c:\traversal.proj

Bu özelliğe son ters eğik çizgiyi eklemeyin.
c:\Source\Repos\ConsoleApp1
MSBuildThisFile Rezerve edildi dosyasının dosya adı ve dosya uzantısı bölümü MSBuildThisFileFullPath. ConsoleApp1.csproj
MSBuildThisFileDirectory Rezerve edildi dizininin MSBuildThisFileFullPathdizin bölümü.

Yola son ters eğik çizgiyi ekleyin.
c:\Source\Repos\ConsoleApp1\ConsoleApp1\
MSBuildThisFileDirectoryNoRoot Rezerve edildi kök sürücü hariç, dizinin dizin bölümü MSBuildThisFileFullPath.

Yola son ters eğik çizgiyi ekleyin.
Source\Repos\ConsoleApp1\ConsoleApp1\
MSBuildThisFileExtension Rezerve edildi dosyasının dosya adı uzantısı bölümü MSBuildThisFileFullPath. .csproj
MSBuildThisFileFullPath Rezerve edildi Çalışmakta olan hedefi içeren projenin veya hedef dosyasının mutlak yolu.

İpucu: Hedef dosyasında, özgün proje dosyasına göre değil, hedefler dosyasına göre göreli bir yol belirtebilirsiniz.
c:\Source\Repos\ConsoleApp1\ConsoleApp1\ConsoleApp1.csproj
MSBuildThisFileName Rezerve edildi dosya adı uzantısı olmadan dosyasının dosya adı bölümü MSBuildThisFileFullPath. ConsoleApp1
MSBuildToolsPath Rezerve edildi değeriyle MSBuildToolsVersionilişkili MSBuild sürümünün yükleme yolu.

Yola son ters eğik çizgiyi eklemeyin.

Bu özellik geçersiz kılınamaz.
C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Current\Bin\amd64
MSBuildToolsPath32 Tanınmış değeriyle MSBuildToolsVersionilişkili 32 bit MSBuild sürümünün yükleme yolu.

Yola son ters eğik çizgiyi eklemeyin.

Bu özellik geçersiz kılınamaz.
C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Current\Bin
MSBuildToolsPath64 Tanınmış değeriyle MSBuildToolsVersionilişkili 64 bit MSBuild sürümünün yükleme yolu.

Yola son ters eğik çizgiyi eklemeyin.

Bu özellik geçersiz kılınamaz.
C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Current\Bin\amd64
MSBuildToolsVersion Rezerve edildi Projeyi derlemek için kullanılan MSBuild Araç Takımı sürümü.

Not: MSBuild Araç Takımı, uygulama oluşturmak için kullanılan görevlerden, hedeflerden ve araçlardan oluşur. Araçlarcsc.exeve vbc.exegibi derleyicileri içerir. Daha fazla bilgi için bkz. Araç Takımı (ToolsVersion), Standart ve özel Araç Takımı yapılandırmaları.
Current
MSBuildSDKsPath Tanınmış MSBuild'in SDK'ları bulmak için kullandığı yol. C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Sdks
MSBuildSemanticVersion Rezerve edildi Projeyi derlemek için kullanılan MSBuild derlemelerinin tam semver 2.0 sürümü. 17.4.0-önizleme-22465-05+6033e4c95
MSBuildUserExtensionsPath Tanınmış Bu yol, MSBuild yükleme klasörünün konumunu sağlar. Yerel, kullanıcı başına özelleştirmeler sağlamak için sıfırlanabilir. Bkz. Yerel derlemenizi özelleştirme.

Yola son ters eğik çizgiyi eklemeyin.
MSBuildVersion Rezerve edildi Projeyi derlemek için kullanılan MSBuild sürümü.

Bu özellik geçersiz kılınamaz, aksi takdirde hata iletisi MSB4004 - The 'MSBuildVersion' property is reserved, and can't be modified. döndürülür.
17.4.0
MSBuildWarningsAsErrors Tanınmış Hata olarak ele almak için uyarı kodlarının listesi. MSB1234;MSB5678
MSBuildWarningsAsMessages Tanınmış İleti olarak ele almak için uyarı kodlarının listesi. MSB1234;MSB5678
MSBuildWarningsNotAsErrors Tanınmış Anahtar diğer tüm uyarıları hatalara yükseltecek şekilde ayarlanmış olsa -warnAsError bile hatalara yükseltilmemesi gereken uyarı kodlarının listesi. Bu doğru değilse hiçbir etkisi olmadığını unutmayın. MSB1234;MSB5678
OS Tanınmış Windows'da bu, konak işletim sisteminden devralınır. Olası değerler arasında "Windows_NT" ve "Unix" bulunur; , Windows dışındaki işletim sistemlerinde farklı değerlere ayarlanabilir.
RoslynTargetsPath Tanınmış Roslyn derleyicileri için hedeflerin yolu. C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Current\Bin\Roslyn
SDK35ToolsPath Tanınmış .NET Framework 3.5 araçlarının yolu.
SDK40ToolsPath Tanınmış .NET Framework 4.0 araçlarının yolu. C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\
VsInstallRoot Tanınmış Visual Studio yükleme klasörü. C:\Program Files\Microsoft Visual Studio\2022
WindowsSDK80Path Tanınmış Windows 8 SDK'sının yolu.

C++ projelerine özgü özellikler

Aşağıdaki özellikler, çeşitli MSVC Derleme Araçları (araç takımı) sürümleri ve hedef işletim sistemleri için ve .props dosyaları gibi .targets C++ MSBuild içeri aktarma dosyalarının yolunu temsil ediyor. Bu klasörlerdeki dosyalar C++ derleme altyapısını temsil edilir ve MSBuild ile herhangi bir C++ projesi oluşturmak için gereklidir.

Mülkiyet Ayrılmış veya iyi bilinen Description Example
AndroidTargetsPath Tanınmış Android derlemeleri için C++ MSBuild içeri aktarma dosyalarının yolu. C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Microsoft\MDD\Android\V150\
iOSTargetsPath Tanınmış iOS derlemeleri için C++ MSBuild içeri aktarma dosyalarının yolu. C:\Program Files\Microsoft Visual Studio\2022\Preview\MSBuild\Microsoft\MDD\iOS\V150\
VCTargetsPath Tanınmış C++ derleme sistemini destekleyen C++ MSBuild dosyalarının yolu. C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Microsoft\VC\v170\
VCTargetsPath10 Tanınmış Visual Studio 2010 araç takımını destekleyen C++ MSBuild dosyalarının yolu. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\
VCTargetsPath11 Tanınmış Visual Studio 2012 (V110) araç takımı için MSBuild içeri aktarma dosyalarının yolu. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\
VCTargetsPath12 Tanınmış Visual Studio 2013 (V120) araç takımı için MSBuild içeri aktarma dosyalarının yolu. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\
VCTargetsPath14 Tanınmış Visual Studio 2015 (V140) araç takımı için MSBuild içeri aktarma dosyalarının yolu. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\

MSBuild öğeleriyle çakışan adlar

Yukarıdakilere ek olarak, MSBuild dil öğelerine karşılık gelen adlar kullanıcı tanımlı özellikler, öğeler veya öğe meta verileri için kullanılamaz:

  • VisualStudioProject
  • Target
  • PropertyGroup
  • Çıktı
  • ItemGroup
  • UsingTask
  • ProjectExtensions
  • OnError
  • ImportGroup
  • Seç
  • Ne zaman
  • Yoksa

Ayrıca bakınız