Compartilhar via


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

Quando você cria projetos, geralmente é necessário compilar os mesmos componentes com opções de compilação diferente. Por exemplo, você pode criar uma compilação de depuração com informações de símbolo ou uma versão de compilação com nenhuma informação de símbolo, mas com otimizações habilitadas. Ou você pode criar um projeto para executar em uma plataforma específica, como, por exemplo, x86 ou x64. Nesses casos, a maioria das opções de compilação permanece os mesmos; apenas algumas opções são alteradas para controlar a configuração de compilação. Com MSBuild, você usar as propriedades e as condições para criar as configurações de compilação diferente.

Usando as propriedades para modificar projetos

O Property elemento define uma variável que é mencionada várias vezes em um arquivo de projeto, como o local de um diretório temporário, ou para definir os valores das propriedades que são usados em várias configurações, como uma compilação de depuração e uma compilação de lançamento. Para obter mais informações sobre propriedades, consulte Propriedadesdo MSBuild.

Você pode usar as propriedades para alterar a configuração de sua compilação sem alterar o arquivo de projeto. O Condition atributo o Property elemento e o PropertyGroup elemento permite que você alterar o valor de propriedades. Para obter mais informações sobre MSBuild condições, consulte Condições do MSBuild.

Para definir um grupo de propriedades com base em outra propriedade

  • Use um Condition o atributo em um PropertyGroup elemento semelhante à seguinte:

    <PropertyGroup Condition="'$(Flavor)'=='DEBUG'">

    <DebugType>full</DebugType>

    <Optimize>no</Optimize>

    </PropertyGroup>

Para definir uma propriedade baseada em outra propriedade

  • Use um Condition o atributo em um Property elemento semelhante à seguinte:

    <DebugType Condition="'$(Flavor)'=='DEBUG'">full</DebugType>

Especificando propriedades na linha de comando

Depois que o arquivo de projeto é escrito para aceitar várias configurações, você precisa ter a capacidade de alterar essas configurações sempre que você construir seu projeto. MSBuildfornece essa capacidade, permitindo que propriedades sejam especificadas na linha de comando usando o a /property ou /p switch.

Para definir uma propriedade de projeto na linha de comando

  • Use o /property switch com a propriedade e o valor da propriedade. Por exemplo:

    msbuild file.proj /property:Flavor=Debug

    - ou -

    Msbuild file.proj /p:Flavor=Debug

Para especificar mais de uma propriedade de projeto na linha de comando

  • Use o /property ou /p opção várias vezes com a propriedade e os valores de propriedade, ou usar um /property ou /p Alternar e separar várias propriedades com ponto e vírgula (;). Por exemplo:

    msbuild file.proj /p:Flavor=Debug;Platform=x86

    - ou -

    msbuild file.proj /p:Flavor=Debug /p:Platform=x86

Variáveis de ambiente também são tratadas como propriedades e são automaticamente incorporadas por MSBuild. Para obter mais informações sobre como usar variáveis de ambiente, consulte How to: Usar variáveis de ambiente em uma compilação.

ObservaçãoObservação

O valor da propriedade especificada na linha de comando prevalece sobre qualquer valor que é definido para a mesma propriedade no arquivo de projeto e que o valor no arquivo de projeto tem precedência sobre o valor de uma variável de ambiente.

Exemplo

O seguinte exemplo de código, o "Hello World" projeto contém dois nova propriedade, a criação de grupos que podem ser usados para criar uma depuração e versão de compilação.

Para criar a versão de depuração deste projeto, digite:

msbuild consolehwcs1.proj /p:flavor=debug

Para criar a versão comercial deste projeto, digite:

msbuild consolehwcs1.proj /p:flavor=retail

<Project DefaultTargets = "Compile"
    xmlns="https://schemas.microsoft.com/developer/msbuild/2003">

    <!-- Sets the default flavor of an environment variable called 
    Flavor is not set or specified on the command line -->
    <PropertyGroup>
        <Flavor Condition="'$(Flavor)'==''">DEBUG</Flavor>
    </PropertyGroup>

    <!-- Define the DEBUG settings -->
    <PropertyGroup Condition="'$(Flavor)'=='DEBUG'">
        <DebugType>full</DebugType>
        <Optimize>no</Optimize>
    </PropertyGroup>

    <!-- Define the RETAIL settings -->
    <PropertyGroup Condition="'$(Flavor)'=='RETAIL'">
        <DebugType>pdbonly</DebugType>
        <Optimize>yes</Optimize>
    </PropertyGroup>

    <!-- Set the application name as a property -->
    <PropertyGroup>
        <appname>HelloWorldCS</appname>
    </PropertyGroup>

    <!-- Specify the inputs by type and file name -->
    <ItemGroup>
        <CSFile Include = "consolehwcs1.cs"/>
    </ItemGroup>

    <Target Name = "Compile">
        <!-- Run the Visual C# compilation using input files
        of type CSFile -->
        <CSC  Sources = "@(CSFile)"
            DebugType="$(DebugType)"
            Optimize="$(Optimize)"
            OutputAssembly="$(appname).exe" >

            <!-- Set the OutputAssembly attribute of the CSC
            task to the name of the executable file that is 
            created -->
            <Output TaskParameter="OutputAssembly"
                ItemName = "EXEFile" />
        </CSC>
        <!-- Log the file name of the output file -->
        <Message Text="The output file is @(EXEFile)"/>
    </Target>
</Project>

Consulte também

Outros recursos

MSBuild

MSBuild Concepts

Referência do MSBuild