How to: Use o mesmo destino em vários arquivos de projeto
Se você tiver criado várias MSBuild arquivos de projeto, você talvez descobriram que você precise usar as mesmas tarefas e destinos em arquivos de projeto diferente. Em vez de incluir a descrição completa desses tarefas ou destinos em cada arquivo de projeto, você pode salvar um destino em um arquivo de projeto separado e Importar projeto para qualquer projeto que precisa usar o destino.
Usando o elemento de importação
O Import elemento é usado para inserir um arquivo de projeto em outro arquivo de projeto. O arquivo de projeto que está sendo importado deve ser válido MSBuild arquivo de projeto e conter XML bem formado. O Project atributo especifica o caminho para o arquivo de projeto importado. Para obter mais informações sobre o Import elemento, consulte Elemento de importação (MSBuild).
Para importar um projeto
Defina, em Importar arquivo de projeto, todas as propriedades e os itens que são usados como parâmetros para propriedades e no projeto importado.
Use o Import elemento para importar o projeto. Por exemplo:
<Import Project="MyCommon.targets"/>
Seguindo o Import elemento, definir todas as propriedades e os itens que devem substituir as definições de padrão de propriedades e os itens no projeto importado.
Ordem de avaliação
Quando MSBuild atinge um Import elemento, o projeto importado efetivamente é inserido no projeto no local de importação de Import elemento. Portanto, o local da Import elemento pode afetar os valores das propriedades e itens. É importante entender as propriedades e os itens que são definidas pelo projeto importado e as propriedades e itens que o projeto importado usa.
Quando o projeto é compilado, todas as propriedades são avaliadas primeiro, seguido de itens. Por exemplo, o XML a seguir define o MyCommon.targets do arquivo de projeto importado:
<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 o MyApp.proj, o 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 o projeto é compilado, a seguinte mensagem é exibida:
Name="MyCommon"
Porque o projeto é importado depois que 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 exibe a seguinte mensagem:
Name="MyApp"
Use a seguinte abordagem ao importar projetos
Defina, o arquivo de projeto, todas as propriedades e os itens que são usados como parâmetros para propriedades e no projeto importado.
Importe o projeto.
Defina no arquivo de projeto, todas as propriedades e os itens que devem substituir as definições do padrão das propriedades e no projeto importado.
Exemplo
O exemplo de código a seguir mostra o arquivo de MyCommon.targets que o segundo exemplo de código importa. O arquivo. targets avalia as propriedades do 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
Referência
Elemento de importação (MSBuild)