Propriedadesdo MSBuild

As propriedades são pares nome / valor que podem ser usados para configurar as compilações. Propriedades são úteis para os valores de passagem para tarefas, avaliando as condições e armazenar os valores que serão referenciados em todo o arquivo de projeto.

Definição e referência de propriedades em um arquivo de projeto

Propriedades são declaradas com a criação de um elemento que tenha o nome da propriedade como um filho de um PropertyGroup elemento. Por exemplo, o XML a seguir cria uma propriedade chamada BuildDir que tem um valor de Build.

<PropertyGroup>
    <BuildDir>Build</BuildDir>
</PropertyGroup>

Em todo o arquivo de projeto, as propriedades são referenciadas usando a sintaxe $(PropertyName). Por exemplo, a propriedade no exemplo anterior é referenciada usando $(BuildDir).

Os valores de propriedade podem ser alterados, redefinindo a propriedade. O BuildDir propriedade pode ser dado um valor novo usando esse XML:

<PropertyGroup>
    <BuildDir>Alternate</BuildDir>
</PropertyGroup>

Propriedades são avaliadas na ordem em que aparecem no arquivo de projeto. O novo valor para BuildDir deve ser declarado depois que o valor antigo é atribuído.

Propriedades reservadas

MSBuildreserva alguns nomes de propriedades para armazenar informações sobre o arquivo de projeto e o MSBuild binários. Essas propriedades são referenciadas usando a notação de $, assim como qualquer outra propriedade. Por exemplo, o $(MSBuildProjectFile) retorna o nome de arquivo completo do arquivo de projeto, incluindo a extensão de nome de arquivo.

Para obter mais informações, consulte How to: Referência ao Nome ou Local do Arquivoprojeto. e MSBuild reservado propriedades.

Propriedades do ambiente

Você pode referenciar variáveis de ambiente em arquivos de projeto como referência a propriedades reservadas. Por exemplo, para usar o PATH a variável de ambiente no seu arquivo de projeto, use $(caminho). Se o projeto contém uma definição de propriedade que tem o mesmo nome de uma propriedade de ambiente, a propriedade do projeto substitui o valor da variável de ambiente. Para obter mais informações, consulte How to: Usar variáveis de ambiente em uma compilação.

Propriedades de registro

Você pode ler os valores de registro de sistema usando a sintaxe a seguir, onde Hive é o hive do registro (por exemplo, HKEY_LOCAL_MACHINE) Key é o nome da chave, SubKey é o nome da subchave, e Value é o valor da subchave.

$(registry:Hive\MyKey\MySubKey@Value)

Para obter o valor padrão da subchave, omita o Value.

$(registry:Hive\MyKey\MySubKey)

Esse valor do Registro pode ser usado para inicializar uma propriedade de compilação. Por exemplo, para criar uma propriedade de compilação que representa a home page do navegador do Visual Studio web, use este código:

<PropertyGroup>

<VisualStudioWebBrowserHomePage>

$(registry:HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0\WebBrowser@HomePage)

</VisualStudioWebBrowserHomePage>

<PropertyGroup>

Propriedades globais

MSBuildpermite que você defina propriedades na linha de comando usando o /property (ou /p) switch. Esses valores de propriedade global substituem os valores de propriedade são definidos no arquivo de projeto. Isso inclui as propriedades do ambiente, mas não inclui propriedades reservadas, o que não podem ser alteradas.

O exemplo a seguir define o global Configuration propriedade para DEBUG.

msbuild.exe MyProj.proj /p:Configuration=DEBUG

Propriedades globais também podem ser definidas ou modificadas para projetos do filho em uma compilação de multiprojeto usando o Properties o atributo da tarefa MSBuild. Para obter mais informações, consulte Tarefa do MSBuild.

Funções de propriedade

No.NET Framework versão 4, você pode usar funções de propriedade para avaliar seus scripts do MSBuild. Leia a hora do sistema, comparar seqüências de caracteres, corresponder expressões regulares e realizar muitas outras ações dentro do seu script de compilação sem usar as tarefas do MSBuild.

Você pode usar métodos de string (instância) para operar em qualquer valor de propriedade e você pode chamar os métodos estáticos de muitas classes de sistema. Por exemplo, você pode definir uma propriedade de compilação para data de hoje como a seguir.

<Today>$([System.DateTime]::Now.ToString("yyyy.MM.dd"))</Today>

Para obter mais informações e uma lista de funções de propriedade, consulte Funções de propriedade.

Criar propriedades durante a execução

Propriedades são posicionados fora Target elementos são atribuídos valores durante a fase de avaliação de uma compilação. Durante a fase de execução subseqüente, propriedades podem ser criadas ou modificadas da seguinte forma:

  • Uma propriedade pode ser emitida por qualquer tarefa. Emitir uma propriedade, o tarefa elemento deve ter um filho saída elemento que possui um PropertyName atributo.

  • Uma propriedade pode ser emitida pela CreateProperty tarefa. Este uso está obsoleto.

  • A partir do.NET Framework 3.5, Target elementos podem conter PropertyGroup elementos que podem conter declarações de propriedade.

Armazenar o XML em Propriedades

Propriedades podem conter XML arbitrário, que pode ajudar a passar valores para tarefas ou exibir informações de log. A exemplo a seguir mostra a ConfigTemplate propriedade, que tem um valor que contém o XML e outras referências de propriedade. MSBuildsubstitui as referências de propriedade por meio de seus valores de propriedade respectivos. Os valores de propriedade são atribuídos na ordem em que aparecem. Portanto, no exemplo, $(MySupportedVersion), $(MyRequiredVersion), e $(MySafeMode) deve já foram definidas.

<PropertyGroup>

<ConfigTemplate>

<Configuration>

<Startup>

<SupportedRuntime

ImageVersion="$(MySupportedVersion)"

Version="$(MySupportedVersion)"/>

<RequiredRuntime

ImageVersion="$(MyRequiredVersion)

Version="$(MyRequiredVersion)"

SafeMode="$(MySafeMode)"/>

</Startup>

</Configuration>

</ConfigTemplate>

</PropertyGroup>

Consulte também

Tarefas

How to: Usar variáveis de ambiente em uma compilação

How to: Referência ao Nome ou Local do Arquivoprojeto.

How to: Os mesmos arquivos de origem com diferentes Opçõesde compilação

Referência

MSBuild reservado propriedades

Elemento de propriedade (MSBuild)

Outros recursos

Conceitos do MSBuild

MSBuild Overview