Compartilhar via


Elemento de importação (MSBuild)

Importa o Sumário do arquivo de um projeto para outro arquivo de projeto.

<Import Project="ProjectPath"
    Condition="'String A'=='String B'" />

Atributos e elementos

As seções a seguir descrevem atributos, elementos filho, e elementos pai.

Atributos

Atributo

Descrição

Project

Atributo obrigatório.

O caminho do arquivo de projeto para importar.

Condition

Atributo opcional.

Condição a ser avaliada. Para obter mais informações, consulte Condições do MSBuild.

Elementos filho

Nenhum

Elementos pai

Elemento

Descrição

Project

Elemento raiz exigido de um MSBuild arquivo de projeto.

Comentários

The Import elemento lhe permite reutilizar o código que é comum a vários arquivos de projeto. Quando você mover blocos comuns de código em outros arquivos de projeto, ele permite manter o código e propagar alterações em um local central. Por exemplo, projeto A e B do Project define os valores específicos de item e a propriedade de suas compilações e C de projeto contém os processos de compilação comum. O projeto A e B do Project podem importar projeto C, e quaisquer alterações em processos de compilação são feitas apenas em um arquivo.

Arquivos de projeto importado comuns são salvos sistema autônomo arquivos .targets por convenção, mas são padrão MSBuild arquivos de projeto. MSBuild não impede que você importar um projeto com uma extensão de arquivo diferente, mas é recomendável a extensão de arquivo .targets para manter a consistência.

Todos os caminhos relativos no projetos importados são interpretados em relação à pasta de projeto importado. Portanto, se um arquivo de projeto é importado para diversos arquivos de projeto em locais diferentes, os caminhos relativos no arquivo de projeto importado irão ser interpretados de modo diferente para cada projeto importado.

All MSBuild reservado propriedades relacionadas para o arquivo de projeto, por exemplo, MSBuildProjectDirectory e MSBuildProjectFile, que são referenciadas em um projeto importado são atribuídos valores com base em Importar arquivo de projeto.

Se o projeto importado não tiver um DefaultTargets atributo, importado projetos são inspecionados na ordem em que eles serão importados e o valor da primeira detectada DefaultTargets o atributo é usado. Por exemplo, se ProjectA importa ProjectB ProjectC (nessa ordem) e ProjectB importa ProjectD, MSBuild primeiro procura por DefaultTargets especificados na ProjectA, e, em seguida, ProjectB, e, em seguida, ProjectD e finalmente ProjectC.

O esquema de um projeto importado é idêntico de um projeto padrão. É possível que MSBuild pode criar um projeto importado, mas provavelmente irá falhar porque o projeto importado não contém informações sobre quais propriedades para conjunto ou a ordem em que a execução de destinos normalmente. O projeto importado depende o projeto no qual ele é importado para fornecer essas informações.

ObservaçãoObservação:

Enquanto trabalha instruções de importação condicional no comando - linha MSBuilds, eles não funcionam com o MSBuild hospedado no Visual Studio ambiente de desenvolvimento integrado (IDE). Importações condicionais são avaliadas usando sistema autônomo valores iniciais de configuração e plataforma padrão conjunto quando o projeto é carregado. Se forem subseqüentemente feitas alterações que exigem uma reavaliação de condicionais no arquivo de projeto, sistema autônomo alterar a plataforma, Visual Studio revê sistema autônomo condições sobre propriedades e sistema autônomo itens, mas não importa. Porque não é reavaliada condicional importação, a importação será ignorada.

Para solucionar esse problema, coloque condicionais importações nos arquivos .targets ou colocar código em blocos condicionais, sistema autônomo um escolher elemento (MSBuild) bloco.

Exemplo

O exemplo de código a seguir mostra um projeto definir várias propriedades e itens e importando um arquivo de projeto geral.

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

    <PropertyGroup>
        <resourcefile>Strings.resx</resourcefile>

        <compiledresources>
            $(O)\$(MSBuildProjectName).Strings.resources
        </compiledresources>
    </PropertyGroup>

    <ItemGroup>
        <CSFile Include="*.cs" />

        <Reference Include="System" />
        <Reference Include="System.Data" />
    </ItemGroup>

    <Import Project="$(CommonLocation)\General.targets" />
</Project>

Consulte também

Tarefas

Como: Usar o mesmo destino em Múltiplo arquivos de projeto

Conceitos

Referência de esquema de arquivo de projeto MSBuild