Compartilhar via


Propriedades reservadas e conhecidas do MSBuild

O MSBuild fornece um conjunto de propriedades predefinidas que armazenam informações sobre o arquivo de projeto e os binários do MSBuild. Essas propriedades são avaliadas da mesma maneira que outras propriedades do MSBuild. Por exemplo, para usar a MSBuildProjectFile propriedade, digite $(MSBuildProjectFile).

O MSBuild usa os valores na tabela a seguir para predefine propriedades reservadas e conhecidas. As propriedades reservadas não podem ser substituídas e a maioria das propriedades conhecidas não deve ser substituída, exceto em cenários avançados.

Propriedades reservadas e conhecidas

A tabela nesta seção mostra as propriedades predefinidas do MSBuild. A coluna de exemplo na tabela refere-se ao arquivo de projeto de exemplo a seguir, considerado localizado C:\Source\Repos\ConsoleApp1\ConsoleApp1e mostra um exemplo dos valores que essas propriedades têm quando acessadas no arquivo de projeto, quando o MSBuild é invocado sem opções de linha de comando especiais.

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

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>
</Project>
Propriedade Reservado ou conhecido Description Example
FrameworkSDKRoot Famoso Caminho para a pasta raiz para ferramentas do .NET Framework. C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\
InnerBuildProperty Famoso Especifica o nome da propriedade que define a dimensão de build multitargeting (aplicável somente se o build atual for um build de grafo). TargetFramework
InnerBuildPropertyValues Famoso Especifica o nome da propriedade que contém os valores possíveis para o InnerBuildProperty (aplicável somente se o build atual for um build de grafo). TargetFrameworks
IsGraphBuild Famoso True se este for um build de grafo; ou seja, a opção -graphBuild está em vigor. Essa opção significa que o MSBuild constrói e cria um grafo de projeto. A construção de um grafo envolve a identificação de referências de projeto para formar dependências. A criação desse grafo envolve a tentativa de criar referências de projeto antes dos projetos que fazem referência a eles, diferentemente do agendamento tradicional do MSBuild.
MSBuildAssemblyVersion Reservado A versão dos assemblies do MSBuild usada para compilar o projeto. 17.0
MSBuildBinPath Reservado O caminho absoluto da pasta em que os binários do MSBuild que estão sendo usados estão localizados (por exemplo, C:\Windows\Microsoft.Net\Framework\<versionNumber>). Essa propriedade será útil se você precisar se referir a arquivos no diretório DO MSBuild.

Não inclua a barra invertida final nesta propriedade.
C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Current\Bin\amd64
MSBuildDisableFeaturesFromVersion Reservado Usado pelos SDKs do MSBuild e da Microsoft para gerenciar ondas de alterações.
MSBuildExtensionsPath Famoso Introduzido no .NET Framework 4: não há diferença entre os valores padrão de MSBuildExtensionsPath e MSBuildExtensionsPath32. Você pode definir a variável MSBUILDLEGACYEXTENSIONSPATH de ambiente como um valor não nulo para habilitar o comportamento do valor padrão de MSBuildExtensionsPath versões anteriores.

No .NET Framework 3.5 e anteriores, o valor padrão dos MSBuildExtensionsPath pontos para o caminho da subpasta MSBuild na pasta \Arquivos de Programas\ ou \Arquivos de Programas (x86), dependendo da bitness do processo atual. Por exemplo, para um processo de 32 bits em um computador de 64 bits, essa propriedade aponta para a pasta \Arquivos de Programas (x86 ). Para um processo de 64 bits em um computador de 64 bits, essa propriedade aponta para a pasta \Arquivos de Programas .

Não inclua a barra invertida final nesta propriedade.

Esse local é um local útil para colocar arquivos de destino personalizados. Por exemplo, seus arquivos de destino podem ser instalados em \Arquivos de Programas\MSBuild\MyFiles\Northwind.targets e importados em arquivos de projeto usando este código XML:

<Import Project="$(MSBuildExtensionsPath)\MyFiles\Northwind.targets"/>
C:\Program Files\Microsoft Visual Studio\2022\MSBuild
MSBuildExtensionsPath32 Famoso O caminho da subpasta MSBuild na pasta \Arquivos de Programas ou \Arquivos de Programas (x86 ). O caminho sempre aponta para a pasta \Arquivos de Programas (x86) de 32 bits em um computador de 32 bits e \Arquivos de Programas em um computador de 64 bits.". Veja também MSBuildExtensionsPath e MSBuildExtensionsPath64.

Não inclua a barra invertida final nesta propriedade.
C:\Program Files\Microsoft Visual Studio\2022\MSBuild
MSBuildExtensionsPath64 Famoso O caminho da subpasta MSBuild na pasta \Arquivos de Programas . Para um computador de 64 bits, esse caminho sempre aponta para a pasta \Arquivos de Programas . Para um computador de 32 bits, esse caminho está em branco. Veja também MSBuildExtensionsPath e MSBuildExtensionsPath32.

Não inclua a barra invertida final nesta propriedade.
C:\Program Files\MSBuild
MSBuildFileVersion Reservado A versão de 4 partes dos assemblies do MSBuild usada para compilar o projeto. 17.4.0.46505
MSBuildFrameworkToolsPath Famoso O caminho para as ferramentas do .NET Framework com as quais o MSBuild em execução foi criado no momento, com uma barra à direita. C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\
MSBuildFrameworkToolsPath32 Famoso O caminho para a versão de 32 bits das ferramentas do .NET Framework para a mesma versão da estrutura com a qual o MSBuild em execução foi criado no momento, com uma barra à direita. C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\
MSBuildFrameworkToolsPath64 Famoso O caminho para a versão de 64 bits das ferramentas do .NET Framework para a mesma versão da estrutura com a qual o MSBuild em execução foi criado no momento, com uma barra à direita. C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\
MSBuildInteractive Reservado true se o MSBuild estiver sendo executado interativamente, permitindo a entrada do usuário. Essa configuração é controlada pela opção -interactive de linha de comando. false
MSBuildLastTaskResult Reservado true se a tarefa anterior foi concluída sem erros (mesmo se houvesse avisos) ou false se a tarefa anterior tivesse erros. Normalmente, quando ocorre um erro em uma tarefa, o erro é a última coisa que acontece nesse projeto. Portanto, o valor dessa propriedade nunca falseé, exceto nestes cenários:

- Quando o ContinueOnError atributo do elemento Task (MSBuild) é definido como WarnAndContinue (ou true) ou ErrorAndContinue.

- Quando o Targetelemento OnError (MSBuild) tem como um elemento filho.
true
MSBuildNodeCount Reservado O número máximo de processos simultâneos usados ao compilar. Esse é o valor especificado para -maxcpucount na linha de comando. Se você especificou -maxcpucount sem especificar um valor, MSBuildNodeCount especifica o número de processadores no computador. Para obter mais informações, consulte Referência de linha de comando e Compilar vários projetos em paralelo. 1
MSBuildOverrideTasksPath Famoso O local para pesquisar .overridetasks arquivos, que podem ser usados para fornecer versões personalizadas de tarefas padrão. Consulte as tarefas do MSBuild.

Não inclua a barra invertida final no caminho.
MSBuildProgramFiles32 Reservado O local da pasta do programa de 32 bits; por exemplo, C:\Arquivos de Programas (x86).

Não inclua a barra invertida final nesta propriedade.
C:\Program Files (x86)
MSBuildProjectDefaultTargets Reservado A lista completa de destinos especificados no DefaultTargets atributo do Project elemento. Por exemplo, o seguinte Project elemento teria um MSBuildDefaultTargets valor de propriedade de A;B;C:

<Project DefaultTargets="A;B;C" >
Build
MSBuildProjectDirectory Reservado O caminho absoluto do diretório em que o arquivo de projeto está localizado, por exemplo , C:\MyCompany\MyProduct.

Não inclua a barra invertida final nesta propriedade.
C:\Source\Repos\ConsoleApp1\ConsoleApp1
MSBuildProjectDirectoryNoRoot Reservado O valor da MSBuildProjectDirectory propriedade, excluindo a unidade raiz.

Não inclua a barra invertida final nesta propriedade.
Source\Repos\ConsoleApp1\ConsoleApp1
MSBuildProjectExtension Reservado A extensão de nome de arquivo do arquivo de projeto, incluindo o período; por exemplo, .proj. .csproj
MSBuildProjectFile Reservado O nome de arquivo completo do arquivo de projeto, incluindo a extensão de nome de arquivo; por exemplo, MyApp.proj. ConsoleApp1.csproj
MSBuildProjectFullPath Reservado O caminho absoluto e o nome do arquivo completo do arquivo de projeto, incluindo a extensão de nome de arquivo; por exemplo, C:\MyCompany\MyProduct\MyApp.proj. c:\Source\Repos\ConsoleApp1\ConsoleApp1\ConsoleApp1.csproj
MSBuildProjectName Reservado O nome do arquivo de projeto sem a extensão de nome de arquivo; por exemplo, MyApp. ConsoleApp1
MSBuildRuntimeType Reservado O tipo do runtime que está sendo executado no momento. Introduzido no MSBuild 15. O valor pode ser indefinido (antes do MSBuild 15), Full indicando que o MSBuild está em execução no .NET Framework da área de trabalho, Core indicando que o MSBuild está em execução no .NET Core (por exemplo dotnet build), ou Mono indicando que o MSBuild está em execução no Mono. Full
MSBuildStartupDirectory Reservado O caminho absoluto da pasta em que o MSBuild é chamado. Usando essa propriedade, você pode criar tudo abaixo de um ponto específico em uma árvore de projeto sem criar <arquivos dirs.proj> em cada diretório. Em vez disso, você tem apenas um projeto, por exemplo, c:\traversal.proj, conforme mostrado aqui:

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

Para compilar em qualquer ponto da árvore, digite:

msbuild c:\traversal.proj

Não inclua a barra invertida final nesta propriedade.
c:\Source\Repos\ConsoleApp1
MSBuildThisFile Reservado O nome do arquivo e a parte de extensão de arquivo de MSBuildThisFileFullPath. ConsoleApp1.csproj
MSBuildThisFileDirectory Reservado A parte do diretório de MSBuildThisFileFullPath.

Inclua a barra invertida final no caminho.
c:\Source\Repos\ConsoleApp1\ConsoleApp1\
MSBuildThisFileDirectoryNoRoot Reservado A parte do diretório de MSBuildThisFileFullPath, excluindo a unidade raiz.

Inclua a barra invertida final no caminho.
Source\Repos\ConsoleApp1\ConsoleApp1\
MSBuildThisFileExtension Reservado A parte da extensão do nome do arquivo de MSBuildThisFileFullPath. .csproj
MSBuildThisFileFullPath Reservado O caminho absoluto do projeto ou do arquivo de destino que contém o destino em execução.

Dica: você pode especificar um caminho relativo em um arquivo de destino relativo ao arquivo de destino e não em relação ao arquivo de projeto original.
c:\Source\Repos\ConsoleApp1\ConsoleApp1\ConsoleApp1.csproj
MSBuildThisFileName Reservado A parte do nome do arquivo de MSBuildThisFileFullPath, sem a extensão de nome de arquivo. ConsoleApp1
MSBuildToolsPath Reservado O caminho de instalação da versão do MSBuild associado ao valor de MSBuildToolsVersion.

Não inclua a barra invertida final no caminho.

Essa propriedade não pode ser substituída.
C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Current\Bin\amd64
MSBuildToolsPath32 Famoso O caminho de instalação da versão do MSBuild de 32 bits associada ao valor de MSBuildToolsVersion.

Não inclua a barra invertida final no caminho.

Essa propriedade não pode ser substituída.
C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Current\Bin
MSBuildToolsPath64 Famoso O caminho de instalação da versão do MSBuild de 64 bits associada ao valor de MSBuildToolsVersion.

Não inclua a barra invertida final no caminho.

Essa propriedade não pode ser substituída.
C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Current\Bin\amd64
MSBuildToolsVersion Reservado A versão do Conjunto de Ferramentas do MSBuild usada para compilar o projeto.

Observação: um conjunto de ferramentas do MSBuild consiste em tarefas, destinos e ferramentas usadas para criar um aplicativo. As ferramentas incluem compiladores como csc.exe e vbc.exe. Para obter mais informações, consulte o Conjunto de Ferramentas (ToolsVersion) e as configurações padrão e personalizadas do conjunto de ferramentas.
Current
MSBuildSDKsPath Famoso O caminho que o MSBuild usa para localizar SDKs. C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Sdks
MSBuildSemanticVersion Reservado A versão semver 2.0 completa dos assemblies do MSBuild usada para compilar o projeto. 17.4.0-preview-22465-05+6033e4c95
MSBuildUserExtensionsPath Famoso Esse caminho fornece o local da pasta de instalação do MSBuild. Ele pode ser redefinido para fornecer personalizações locais por usuário. Consulte Personalizar o build local.

Não inclua a barra invertida final no caminho.
MSBuildVersion Reservado A versão do MSBuild usada para criar o projeto.

Essa propriedade não pode ser substituída, caso contrário, a mensagem MSB4004 - The 'MSBuildVersion' property is reserved, and can't be modified. de erro será retornada.
17.4.0
MSBuildWarningsAsErrors Famoso Uma lista de códigos de aviso a serem tratados como erros. MSB1234;MSB5678
MSBuildWarningsAsMessages Famoso Uma lista de códigos de aviso a serem tratados como mensagens. MSB1234;MSB5678
MSBuildWarningsNotAsErrors Famoso Uma lista de códigos de aviso que não devem ser promovidos a erros mesmo se a opção -warnAsError estiver definida para promover todos os outros avisos a erros. Observe que ele não terá efeito se isso não for verdade. MSB1234;MSB5678
OS Famoso No Windows, isso é herdado do sistema operacional host. Os valores possíveis incluem "Windows_NT" e "Unix"; pode ser definido como valores diferentes em sistemas operacionais diferentes do Windows.
RoslynTargetsPath Famoso Caminho para destinos para compiladores Roslyn. C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Current\Bin\Roslyn
SDK35ToolsPath Famoso Caminho para ferramentas do .NET Framework 3.5.
SDK40ToolsPath Famoso Caminho para ferramentas do .NET Framework 4.0. C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\
VsInstallRoot Famoso A pasta de instalação do Visual Studio. C:\Program Files\Microsoft Visual Studio\2022
WindowsSDK80Path Famoso Caminho para o SDK do Windows 8.

Propriedades específicas para projetos do C++

As propriedades a seguir representam o caminho para os arquivos de importação do MSBuild C++, como .props e .targets arquivos, para várias versões do Conjunto de Ferramentas de Build do MSVC (conjunto de ferramentas) e sistemas operacionais de destino. Os arquivos nessas pastas representam a infraestrutura de build do C++ e são essenciais para a criação de qualquer projeto C++ com o MSBuild.

Propriedade Reservado ou conhecido Description Example
AndroidTargetsPath Famoso Caminho para os arquivos de importação do MSBuild do C++ para builds do Android. C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Microsoft\MDD\Android\V150\
iOSTargetsPath Famoso Caminho para arquivos de importação do MSBuild do C++ para builds do iOS. C:\Program Files\Microsoft Visual Studio\2022\Preview\MSBuild\Microsoft\MDD\iOS\V150\
VCTargetsPath Famoso Caminho para arquivos MSBuild C++ que dão suporte ao sistema de build do C++. C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Microsoft\VC\v170\
VCTargetsPath10 Famoso Caminho para arquivos msbuild C++ que dão suporte ao conjunto de ferramentas do Visual Studio 2010. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\
VCTargetsPath11 Famoso Caminho para os arquivos de importação do MSBuild para o conjunto de ferramentas do Visual Studio 2012 (V110). C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\
VCTargetsPath12 Famoso Caminho para os arquivos de importação do MSBuild para o conjunto de ferramentas do Visual Studio 2013 (V120). C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\
VCTargetsPath14 Famoso Caminho para os arquivos de importação do MSBuild para o conjunto de ferramentas do Visual Studio 2015 (V140). C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\

Nomes que entram em conflito com elementos do MSBuild

Além do indicado acima, os nomes correspondentes aos elementos da linguagem MSBuild não podem ser usados para propriedades, itens ou metadados de item definidos pelo usuário:

  • VisualStudioProject
  • Meta
  • PropertyGroup
  • Saída
  • ItemGroup
  • UsingTask
  • ProjectExtensions
  • OnError
  • ImportGroup
  • Escolher
  • When
  • Caso contrário

Consulte também