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)