Partilhar via


Personalizar todas as compilações do .NET

As técnicas neste artigo são úteis quando você deseja personalizar todas as compilações executadas em um computador, máquina virtual ou contêiner específico. Por exemplo, quando você configura um servidor de compilação, talvez seja necessário definir as configurações do MSBuild globalmente para todas as compilações no servidor. Em princípio, você poderia modificar os arquivos globais Microsoft.Common.Targets ou Microsoft.Common.Props , mas há uma maneira melhor. Você pode afetar todas as compilações de um determinado tipo de projeto (como todos os projetos C#) usando certas propriedades do MSBuild e adicionando arquivos personalizados .targets e .props.

Antes e depois dos ficheiros padrão .props e .targets

Para afetar todas as compilações C# ou Visual Basic regidas por uma instalação do MSBuild ou Visual Studio, crie um arquivo Custom.Before.Microsoft.Common.Targets ou Custom.After.Microsoft.Common.Targets com destinos que serão executados antes ou depois de Microsoft.Common.targets, ou um arquivo Custom.Before.Microsoft.Common.Props ou Custom.After.Microsoft.Common.Props com propriedades que serão processadas antes ou depois de Microsoft.Common.props.

Você pode especificar os locais desses arquivos usando as seguintes propriedades do MSBuild:

  • CustomBeforeMicrosoftCommonProps
  • CustomBeforeMicrosoftCommonTargets
  • CustomAfterMicrosoftCommonProps
  • CustomAfterMicrosoftCommonTargets
  • CustomBeforeMicrosoftCSharpTargets
  • CustomBeforeMicrosoftVisualBasicTargets
  • CustomAfterMicrosoftCSharpTargets
  • ConfiguraçãoPersonalizadaApósMicrosoftVisualBasicTargets

As versões comuns dessas propriedades afetam projetos C# e Visual Basic. Você pode definir essas propriedades na linha de comando MSBuild.

msbuild /p:CustomBeforeMicrosoftCommonTargets="C:\build\config\Custom.Before.Microsoft.Common.Targets" MyProject.csproj

Advertência

Visual Studio usa os arquivos personalizados .targets ou .props se encontrados na pasta MSBuild, sempre que criar qualquer projeto correspondente ao tipo. Essa personalização pode ter consequências não intencionais e, se feita incorretamente, pode desabilitar a capacidade do Visual Studio de compilar em seu computador.

Substitua o ficheiro props comum

Você também pode usar as propriedades AlternateCommonProps para especificar seu próprio .props arquivo a ser usado em vez de Microsoft.Common.props. Se você já sentiu a necessidade de personalizar Microsoft.Common.props modificando-o diretamente, você pode copiar a versão padrão desse arquivo para outro arquivo e, em seguida, fazer suas alterações somente na versão alternativa.

A melhor abordagem depende do seu cenário. Usando o Visual Studio Extensibility, você pode personalizar o sistema de compilação e fornecer um mecanismo para instalar e gerenciar as personalizações.

Se tiver um servidor de compilação dedicado e desejar assegurar que determinados alvos sejam sempre executados em todas as compilações do tipo de projeto apropriado que são realizadas nesse servidor, então faz sentido usar um ficheiro .targets ou .props global personalizado. Se você quiser que os destinos personalizados só sejam executados quando determinadas condições se aplicarem, use outro local de arquivo e defina o caminho para esse arquivo definindo a propriedade MSBuild apropriada na linha de comando MSBuild somente quando necessário.