MSBuild ayrılmış ve tanınmış ö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ımlayabilmek için aşağıdaki tabloda yer alan değerleri kullanır. Ayrılmış özellikler geçersiz kılınamaz, ancak iyi bilinen özellikler aynı adlı ortam özellikleri, genel özellikler veya proje dosyasında bildirilen özellikler kullanılarak geçersiz kılınabilir.

Ayrılmış ve iyi bilinen özellikler

Bu bölümdeki tabloda MSBuild önceden tanımlanmış özellikleri gösterilmektedir. Tablodaki örnek sütun, konumunda C:\Source\Repos\ConsoleApp1\ConsoleApp1olduğu varsayılan aşağıdaki örnek proje dosyasıyla ilgilidir ve visual studio 2019 sürüm 16.7'nin önizleme derlemesi yüklenmiş olarak, MSBuild özel komut satırı seçenekleri olmadan çağrıldığında proje dosyasında erişildiğinde bu özelliklerin değerlerini gösterir.

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

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>
</Project>
Özellik Ayrılmış veya iyi bilinen Açıklama Örnek
MSBuildBinPath Ayrılmıştır Kullanılmakta olan MSBuild ikili dosyalarının bulunduğu klasörün mutlak yolu (örneğin, C:\Windows\Microsoft.Net\Framework\<versionNumber>). MSBuild dizinindeki dosyalara başvurmanız gerekiyorsa bu özellik yararlıdır.

Bu özelliğe son ters eğik çizgiyi eklemeyin.
C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Current\Bin
MSBuildExtensionsPath Tanın -mış .NET Framework 4'te kullanıma sunulmuştur: ve MSBuildExtensionsPath32varsayılan değerleri MSBuildExtensionsPath 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 bitliğine 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 makinede 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ı koymak için kullanışlı bir yerdir. Örneğin, hedef dosyalarınız \Program Files\MSBuild\MyFiles\Northwind.targets konumunda yüklenebilir ve sonra bu XML kodu kullanılarak proje dosyalarına içeri aktarılabilir:

<Import Project="$(MSBuildExtensionsPath)\MyFiles\Northwind.targets"/>
C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild
MSBuildExtensionsPath32 Tanın -mış \Program Files veya \Program Files(x86) klasörünün altındaki MSBuild alt klasörünün yolu. Yol her zaman 32 bit makinede 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 (x86)\Microsoft Visual Studio\2019\Preview\MSBuild
MSBuildExtensionsPath64 Tanın -mış \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
MSBuildWarningsAsErrors Tanın -mış Hata olarak ele almak için uyarı kodlarının listesi. MSB1234;MSB5678
MSBuildWarningsNotAsErrors Tanın -mış 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
MSBuildWarningsAsMessages Tanın -mış İleti olarak ele almak için uyarı kodlarının listesi. MSB1234;MSB5678
MSBuildInteractive Ayrılmıştır 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 Ayrılmıştır true önceki görev hatasız tamamlandıysa (uyarı olsa bile) veya false önceki görevin hataları varsa. Genellikle, bir görevde hata oluştuğunda, hata o 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 trueErrorAndContinueolarak WarnAndContinue ayarlandığında.

- Alt öğe olarak onError öğesi (MSBuild) olduğundaTarget.
true
MSBuildNodeCount Ayrılmıştır 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 bilgisayardaki MSBuildNodeCount 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
MSBuildProgramFiles32 Ayrılmıştır 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 Ayrılmıştır öğesinin özniteliğinde Project belirtilen hedeflerin DefaultTargets tam listesi. Örneğin, aşağıdaki Project öğenin bir MSBuildDefaultTargets özellik değeri A;B;Colabilir:

<Project DefaultTargets="A;B;C" >
Build
MSBuildProjectDirectory Ayrılmıştır Proje dosyasının bulunduğu dizinin mutlak yolu, örneğin C:\Bilgisayarım\Ürünm.

Bu özelliğe son ters eğik çizgiyi eklemeyin.
C:\Source\Repos\ConsoleApp1\ConsoleApp1
MSBuildProjectDirectoryNoRoot Ayrılmıştır 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 Ayrılmıştır Dönem de dahil olmak üzere proje dosyasının dosya adı uzantısı; örneğin, .proj. .csproj
MSBuildProjectFile Ayrılmıştır Dosya adı uzantısı dahil olmak üzere proje dosyasının tam dosya adı; örneğin, MyApp.proj. ConsoleApp1.csproj
MSBuildProjectFullPath Ayrılmıştır 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 Ayrılmıştır Dosya adı uzantısı olmayan proje dosyasının dosya adı; örneğin, MyApp. ConsoleApp1
MSBuildRuntimeType Ayrılmıştır Şu anda yürütülmekte olan çalışma zamanının türü. MSBuild 15'te kullanıma sunulmuştur. MsBuild'in masaüstü .NET Framework Core üzerinde çalıştığını, MSBuild'in .NET Core üzerinde çalıştığını belirten (örneğin , ) veya Mono MSBuild'in dotnet buildMono üzerinde çalıştığını belirten değer tanımsız (MSBuild 15'den Full önce) olabilir. Full
MSBuildStartupDirectory Ayrılmıştır 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ında her şeyi oluşturabilirsiniz. Bunun yerine, burada gösterildiği gibi yalnızca bir projeniz (örneğin, c:\traversal.proj) vardır:

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

Ağacın herhangi bir noktasında oluşturmak için şunu yazın:

msbuild c:\traversal.proj

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

Yola son ters eğik çizgiyi ekleyin.
c:\Source\Repos\ConsoleApp1\ConsoleApp1\
MSBuildThisFileDirectoryNoRoot Ayrılmıştır kök sürücü hariç dizin bölümü MSBuildThisFileFullPath.

Yola son ters eğik çizgiyi ekleyin.
Source\Repos\ConsoleApp1\ConsoleApp1\
MSBuildThisFileExtension Ayrılmıştır dosyasının dosya adı uzantısı bölümü MSBuildThisFileFullPath. .csproj
MSBuildThisFileFullPath Ayrılmıştır Ç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 Ayrılmıştır dosya adı uzantısı olmadan dosyasının dosya adı bölümü MSBuildThisFileFullPath. ConsoleApp1
MSBuildToolsPath Ayrılmıştır 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 (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Current\Bin
MSBuildToolsVersion Ayrılmıştır 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çlar, csc.exe ve vbc.exegibi derleyicileri içerir. Daha fazla bilgi için bkz . Araç Takımı (ToolsVersion) ve Standart ve özel Araç Kümesi yapılandırmaları.
Current
MSBuildVersion Ayrılmıştır 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 not be modified. döndürülür.
16.11.0
MSBuildAssemblyVersion Ayrılmıştır Projeyi derlemek için kullanılan MSBuild derlemelerinin sürümü. 16.0
MSBuildFileVersion Ayrılmıştır Projeyi derlemek için kullanılan MSBuild derlemelerinin 4 bölüm sürümü. 16.11.0.30701
MSBuildSemanticVersion Ayrılmıştır Projeyi derlemek için kullanılan MSBuild derlemelerinin tam semver 2.0 sürümü. 16.11.0-preview-21302-05+5e37cc992

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
  • Hedef
  • Propertygroup
  • Çıktı
  • Itemgroup
  • Usingtask
  • ProjectExtensions
  • Onerror
  • ImportGroup
  • Seçin:
  • Ne zaman
  • Aksi takdir -de

Ayrıca bkz.