Compartilhar via


Alterar o diretório de saída de build

Você pode especificar o local da saída produzida pelo seu projeto com base em cada configuração (para depuração, versão ou ambas). Com as configurações padrão, as pastas de saída variam de acordo com o tipo de projeto e o SDK, com alguns projetos usando subpastas específicas da plataforma ou específicas 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 no 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 aspectos da saída do projeto, seja para projetos individuais ou no nível da solução para muitos projetos.

Alterar o diretório de saída de build

  1. Limpe o projeto ou a solução para remover todos os arquivos de saída existentes (Compilar>Limpar solução).

  2. Para abrir as páginas de propriedades do projeto, clique com o botão direito do mouse no nó do projeto no Gerenciador de Soluções e selecione Propriedades.

  3. Selecione a guia apropriada com base no tipo de projeto:

    • Para C#, selecione a guia Compilar.
    • Para o Visual Basic, selecione a guia Compilar.
    • Para C++ ou JavaScript, selecione a guia Geral.
  4. Na lista suspensa de configuração na parte superior, escolha a configuração cujo local do arquivo de saída você deseja alterar (Depuração, Versão ou Todas as Configurações).

  5. Localize a entrada do caminho de saída na página, ela é diferente dependendo do tipo de projeto:

    • caminho de saída para projetos C# e JavaScript
    • Caminho de saída de build para projetos Visual Basic
    • Diretório de saída para projetos do Visual C++

    Digite o caminho para o qual gerar a saída (absoluto ou relativo para o diretório raiz do projeto), ou escolha Procurar para, em vez disso, navegar até essa pasta.

    propriedade de caminho de saída para um projeto do Visual Studio C#

    Nota

    Alguns projetos (.NET e ASP.NET Core) incluirão, por padrão, a versão da estrutura ou o identificador de runtime no caminho de build. 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>
    

Dica

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

seletor de configuração de build no Visual Studio 2019.

Compilar para um diretório de saída em 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 de seus projetos para forçar que todas as saídas sejam colocadas na mesma pasta.

Para colocar todas as saídas de solução em um diretório comum

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

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

  3. No menu Projeto, clique em Propriedades.

  4. Em cada projeto, dependendo do tipo, selecione Compilar ou Build e defina o Caminho de saída ou o Caminho de saída de base como a pasta a ser usada para todos os projetos na solução.

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

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

    A configuração UseCommonOutputDirectory para true informa ao Visual Studio e ao mecanismo de build 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 excepcionais que não devem usar o diretório de saída comum.

Para definir o diretório de saída intermediário para um projeto (projetos .NET)

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

  2. Abra o arquivo de projeto.

  3. Adicione a declaração de propriedade a seguir 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, poderá referenciá-lo usando as propriedades do MSBuild $(MSBuildProjectName), $(MSBuildProjectDirectory). Para ver mais propriedades que você pode usar, consulte Propriedades reservadas e conhecidas do MSBuild.

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

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

    Consulte Especificar eventos de build personalizados.

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

Alterar o diretório de saída de build

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

  1. Limpe o projeto ou a solução para remover todos os arquivos de saída existentes (Compilar>Limpar solução).

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

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

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

    C#:

    Uma captura de tela que mostra a propriedade

    Visual Basic:

    Uma captura de tela que mostra a propriedade

    Nota

    Alguns projetos (.NET e ASP.NET Core) incluirão, por padrão, a versão da estrutura ou o identificador de runtime 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 do Projetoe adicione o seguinte:

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

Compilar para um diretório de saída em 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 de seus projetos para forçar que todas as saídas sejam colocadas na mesma pasta.

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

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

  3. No menu Projeto, clique em Propriedades.

  4. Em cada projeto, dependendo do tipo, selecione Compilar ou Build e defina o Caminho de saída ou o Caminho de saída de base como a pasta a ser usada para todos os projetos na solução.

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

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

    A configuração UseCommonOutputDirectory para true informa ao Visual Studio e ao mecanismo de build 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 excepcionais que não devem usar o diretório de saída comum.

Dica

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

Captura de tela do seletor de configuração de 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 voltados para .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 declaração de propriedade a seguir 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, poderá referenciá-lo usando as propriedades do MSBuild $(MSBuildProjectName), $(MSBuildProjectDirectory). Para ver mais propriedades que você pode usar, consulte Propriedades reservadas e conhecidas do MSBuild.

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

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

    Consulte Especificar eventos de build 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, será entediante 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 manter facilmente as personalizações em um único lugar e facilitar a alteração dos valores. Confira Personalizar o build por pasta.

Usar artefatos para organizar a saída de build

Para projetos do .NET 8, você pode usar a funcionalidade de artefatos para organizar a saída de maneira altamente personalizável e flexível. Confira Layout da saída de artefatos.