Partilhar via


Alterar o diretório de saída da compilação

Você pode especificar o local da saída gerada pelo seu projeto por configuração (para depuração, liberação ou ambas). Com as configurações padrão, as pastas de saída variam de acordo com o tipo de projeto e SDK, com alguns projetos usando subpastas específicas da plataforma ou da estrutura.

O Visual Studio fornece propriedades que permitem colocar a saída intermediária e final em pastas personalizadas, especificando os caminhos relativos à pasta do projeto ou um caminho absoluto em qualquer lugar do sistema de arquivos. Além das configurações especificadas nas propriedades do projeto do Visual Studio, você também pode personalizar ainda mais a saída editando o arquivo de projeto e usando os recursos do MSBuild e do SDK do .NET para controle completo sobre todos os aspetos da saída do projeto, seja para projetos individuais ou no nível da solução para muitos projetos.

No Visual Studio 2022, há diferentes interfaces de usuário do Project Designer, dependendo do seu tipo de projeto. Os projetos do .NET Framework usam o .NET Project Designer herdado, mas os projetos .NET Core (e .NET 5 e posterior) usam o .NET Project Designer atual. Projetos C++ usam sua própria interface de usuário de páginas de propriedades. As etapas nesta seção dependem do Project Designer que você está usando.

Alterar o diretório de saída da compilação

Este procedimento se aplica a projetos no Visual Studio 2022 destinados ao .NET Core ou .NET 5 e posterior.

  1. Limpe o projeto ou a solução para remover quaisquer arquivos de saída existentes (Build>Clean solution).

  2. Clique com o botão direito no nó do projeto no Gerenciador de Soluções e selecione Propriedades.

  3. Para projetos C#, expanda a seção Compilação e role para baixo até a subseção Saída. Para Visual Basic, expanda a seção Compile e procure em Geral.

  4. Encontre o caminho de saída Base e digite o caminho para gerar a saída (absoluto ou relativo ao diretório raiz do projeto) ou escolha Procurar para aceder a essa pasta. Observe que o nome da configuração é anexado ao caminho de saída base para gerar o caminho de saída real.

    C#:

    Imagem de ecrã que mostra a propriedade do caminho de saída para um projeto .NET Core C#.

    Visual Basic:

    Captura de tela que mostra a propriedade Output path para um projeto do .NET Core Visual Basic.

    Observação

    Alguns projetos (.NET e ASP.NET Core) incluirão, por padrão, a versão da estrutura ou o identificador de tempo de execução no caminho de saída final. Para alterar isso, clique com o botão direito do mouse no nó do projeto no Gerenciador de Soluções , selecione Editar Arquivo de Projetoe adicione o seguinte:

    <PropertyGroup>
      <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
      <AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
    </PropertyGroup>
    

Compilar para um diretório de saída comum

Por padrão, o Visual Studio cria cada projeto em uma solução em sua própria pasta dentro da solução. Você pode alterar os caminhos de saída de build dos seus projetos para forçar todas as saídas a serem colocadas na mesma pasta.

  1. Limpe a solução para remover todos os arquivos de saída existentes (Build>Clean solution).

  2. Clique em um projeto na solução.

  3. No menu Projeto, clique em Propriedades.

  4. Em cada projeto, dependendo do seu tipo, selecione Compile ou Builde defina o caminho de saída ou o caminho base de saída para uma pasta a ser usada para todos os projetos na solução.

  5. Abra o arquivo de projeto para o projeto e adicione a seguinte declaração de propriedade ao primeiro grupo de propriedades.

    <PropertyGroup>
      <!-- existing property declarations are here -->
      <UseCommonOutputDirectory>true</UseCommonOutputDirectory>
    </PropertyGroup>
    

    Definir UseCommonOutputDirectory como true informa ao Visual Studio e seu mecanismo de compilação subjacente (MSBuild) que você está colocando várias saídas de projeto na mesma pasta e, portanto, o MSBuild omite a etapa de cópia que normalmente acontece quando os projetos dependem de outros projetos.

  6. Repita as etapas 2 a 5 para todos os projetos na solução. Você pode ignorar alguns projetos se tiver alguns projetos excecionais que não devem usar o diretório de saída comum.

Dica

Se a saída não estiver sendo gerada para o local que você especificou, verifique se você está criando a configuração correspondente (por exemplo, Debug ou Release) selecionando-a na barra de menus do Visual Studio.

Captura de tela do seletor de configuração Build no Visual Studio 2022.

Definir o diretório de saída intermediário para um projeto

Este procedimento se aplica a projetos no Visual Studio 2022 destinados ao .NET Core ou .NET 5 e posterior.

  1. Limpe o projeto para remover todos os arquivos de saída existentes.

  2. Abra o arquivo de projeto.

  3. Adicione a seguinte declaração de propriedade ao primeiro grupo de propriedades.

    <PropertyGroup>
      <!-- existing property declarations are here -->
      <IntermediateOutputPath>path</IntermediateOutputPath>
    </PropertyGroup>
    

    O caminho é relativo ao arquivo de projeto ou você pode usar um caminho absoluto. Se você quiser colocar o nome do projeto no caminho, você pode fazer referência a ele usando as propriedades do MSBuild $(MSBuildProjectName), $(MSBuildProjectDirectory). Para obter mais propriedades utilizáveis, consulte propriedades reservadas e bem conhecidas do MSBuild.

  4. O Visual Studio ainda cria a pasta obj na pasta do projeto quando você compila, mas ela está vazia. Você pode excluí-lo como parte do processo de compilação. Uma maneira de fazer isso é adicionar um evento pós-compilação para executar o seguinte comando:

    rd "$(ProjectDir)obj" /s /q
    

    Consulte Especificar eventos de compilação personalizados.

Use Directory.Build.props para definir o diretório de saída

Se você tiver um grande número de projetos e quiser alterar a pasta de saída para todos eles, seria tedioso e propenso a erros alterar cada um usando os métodos descritos anteriormente neste artigo. Nesses casos, você pode criar um arquivo na pasta da solução, Directory.Build.props, para definir as propriedades apropriadas do MSBuild em um só lugar, para aplicar a todos os projetos na solução. Ao colocar um arquivo com esse nome específico na pasta pai de todos os projetos que você deseja que sejam afetados, você pode facilmente manter as personalizações em um único lugar e facilitar a alteração dos valores. Consulte Personalizar a compilação por pasta.

Usar artefatos para organizar o resultado da construção

Para projetos .NET 8, você pode usar a funcionalidade de artefatos para organizar a saída de uma maneira altamente personalizável e flexível. Consulte a estrutura de saída dos artefactos.