Compartilhar via


Como: Usar o mesmo destino em vários arquivos de projeto

Se tiver criado várias MSBuild arquivos de projeto, você pode descobrir que você precise usar as mesmas tarefas e destinos em arquivos de projeto diferente. Em vez de incluir a descrição completa das tarefas ou os destinos em todos os arquivos de projeto, você pode salvar um destino em um arquivo de projeto separado e, em seguida, importar esse projeto para qualquer projeto que precisa usar o destino.

Usando o elemento de importação

The Import elemento é usado para inserir um arquivo de projeto em outro arquivo de projeto. O arquivo de projeto que está sendo importado deve ser um válido MSBuild projeto de arquivo e conter XML válido. The Project atributo especifica o caminho para o arquivo de projeto importado. Para obter mais informações sobre o Import elemento, consulte Elemento de Importarar (MSBuild).

Para importar um projeto

  1. Defina, em Importar arquivo de projeto, todas sistema autônomo propriedades e itens que são usados sistema autônomo parâmetros para sistema autônomo propriedades e itens de projeto importado.

  2. Use o Import elemento para importar o projeto. Por exemplo:

    <Import Project="MyCommon.targets"/>
    
  3. Seguindo o Import elemento, definir todas as propriedades e os itens que devem substituir as definições padrão de propriedades e no projeto importado.

Ordem de avaliação

Quando MSBuild atinge um Import elemento, o projeto importado é inserido com eficácia o projeto no local de importação de Import elemento. Portanto, o local do Import elemento pode afetar os valores de propriedades e itens. É importante entender as propriedades e os itens conjunto pelo projeto importado e as propriedades e itens que usa o projeto importado.

Quando cria o projeto, todas as propriedades são avaliadas primeiro, seguido de itens.Por exemplo, o XML a seguir define o arquivo de projeto importado MyCommon.targets:

<Project xmlns=”https://schemas.microsoft.com/developer/msbuild/2003”>
    <PropertyGroup>
        <Name>MyCommon</Name>
    </PropertyGroup>

    <Target Name="Go">
        <Message Text="Name="$(Name)""/>
    </Target>
</Project>

O XML a seguir define MyApp.proj, que importa MyCommon.targets:

<Project
    DefaultTargets="Go"
    xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
        <Name>MyApp</Name>
    </PropertyGroup>
    <Import Project="MyCommon.targets"/>
</Project>

Quando cria o projeto, a seguinte mensagem é exibida:

Name="MyCommon"

Como o projeto é importado depois a propriedade Name foi definido no MyApp.proj, a definição de Name na MyCommon.targets substitui a definição no MyApp.proj. Se, o projeto é importado antes da propriedade que nome é definido, a compilação exibiria a seguinte mensagem:

Name="MyApp"

Use a seguinte abordagem durante a importação de projetos

  1. Defina, no arquivo de projeto, todas sistema autônomo propriedades e itens que são usados sistema autônomo parâmetros para sistema autônomo propriedades e itens de projeto importado.

  2. Importe o projeto.

  3. Defina no arquivo de projeto, todas as propriedades e os itens que devem substituir as definições padrão de propriedades e itens de projeto importado.

Exemplo

O exemplo de código a seguir mostra o arquivo MyCommon.targets que importa o segundo exemplo de código.O arquivo .targets avalia propriedades a partir o projeto de importação para configurar a compilação.

<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
        <Flavor Condition="'$(Flavor)'==''">DEBUG</Flavor>
        <Optimize Condition="'$(Flavor)'=='RETAIL'">yes</Optimize>
        <appname>$(MSBuildProjectName)</appname>
    <PropertyGroup>
    <Target Name="Build">
        <Csc Sources="hello.cs"
            Optimize="$(Optimize)"
            OutputAssembly="$(appname).exe"/>
    </Target>
</Project>

O exemplo de código a seguir importa o arquivo MyCommon.targets.

<Project DefaultTargets="Build"
    xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
        <Flavor>RETAIL</Flavor>
    </PropertyGroup>
    <Import Project="MyCommon.targets"/>
</Project>

Consulte também

Conceitos

Destinos do MSBuild

Referência

Elemento de Importarar (MSBuild)