Estrutura do diretório do ASP.NET CoreASP.NET Core directory structure

Por Luke LathamBy Luke Latham

O diretório publish contém os ativos implantáveis do aplicativo produzidos pelo comando dotnet publish.The publish directory contains the app's deployable assets produced by the dotnet publish command. O diretório contém:The directory contains:

Tipo de aplicativoApp Type Estrutura de diretóriosDirectory Structure
Implantação dependente de estruturaFramework-dependent Deployment
  • publish†publish†
    • Exibições† (aplicativos MVC; se as exibições não são pré-compiladas)Views† (MVC apps; if views aren't precompiled)
    • Páginas† (aplicativos de Páginas do Razor ou MVC, se as páginas não são pré-compiladas)Pages† (MVC or Razor Pages apps; if pages aren't precompiled)
    • wwwroot†wwwroot†
    • arquivos *.dll*.dll files
    • {NOME DO ASSEMBLY}.deps.json{ASSEMBLY NAME}.deps.json
    • {NOME DO ASSEMBLY}.dll{ASSEMBLY NAME}.dll
    • {NOME DO ASSEMBLY}.pdb{ASSEMBLY NAME}.pdb
    • {NOME DO ASSEMBLY}.Views.dll{ASSEMBLY NAME}.Views.dll
    • {NOME DO ASSEMBLY}.Views.pdb{ASSEMBLY NAME}.Views.pdb
    • {NOME DO ASSEMBLY}.runtimeconfig.json{ASSEMBLY NAME}.runtimeconfig.json
    • web.config (implantações do IIS)web.config (IIS deployments)
Implantação autossuficienteSelf-contained Deployment
  • publish†publish†
    • Exibições† (aplicativos MVC; se as exibições não são pré-compiladas)Views† (MVC apps; if views aren't precompiled)
    • Páginas† (aplicativos de Páginas do Razor ou MVC, se as páginas não são pré-compiladas)Pages† (MVC or Razor Pages apps; if pages aren't precompiled)
    • wwwroot†wwwroot†
    • arquivos *.dll*.dll files
    • {NOME DO ASSEMBLY}.deps.json{ASSEMBLY NAME}.deps.json
    • {NOME DO ASSEMBLY}.dll{ASSEMBLY NAME}.dll
    • {NOME DO ASSEMBLY}.exe{ASSEMBLY NAME}.exe
    • {NOME DO ASSEMBLY}.pdb{ASSEMBLY NAME}.pdb
    • {NOME DO ASSEMBLY}.Views.dll{ASSEMBLY NAME}.Views.dll
    • {NOME DO ASSEMBLY}.Views.pdb{ASSEMBLY NAME}.Views.pdb
    • {NOME DO ASSEMBLY}.runtimeconfig.json{ASSEMBLY NAME}.runtimeconfig.json
    • web.config (implantações do IIS)web.config (IIS deployments)

†Indica um diretório†Indicates a directory

O diretório publish representa o caminho raiz de conteúdo (também chamado de caminho base do aplicativo) da implantação.The publish directory represents the content root path, also called the application base path, of the deployment. Qualquer que seja o nome fornecido para o diretório publish do aplicativo implantado no servidor, o local dele serve como o caminho físico do servidor para o aplicativo hospedado.Whatever name is given to the publish directory of the deployed app on the server, its location serves as the server's physical path to the hosted app.

O diretório wwwroot, se presente, contém somente ativos estáticos.The wwwroot directory, if present, only contains static assets.

Criar uma pasta Logs é útil para o log de depuração aprimorado do Módulo do ASP.NET Core.Creating a Logs folder is useful for ASP.NET Core Module enhanced debug logging. As pastas no caminho fornecido para o valor <handlerSetting> não são criadas automaticamente pelo módulo e devem existir previamente na implantação para permitir que o módulo grave o log de depuração.Folders in the path provided to the <handlerSetting> value aren't created by the module automatically and should pre-exist in the deployment to allow the module to write the debug log.

Um diretório Logs pode ser criado para a implantação usando uma das duas abordagens a seguir:A Logs directory can be created for the deployment using one of the following two approaches:

  • Adicione o seguinte elemento <Target> ao arquivo de projeto:Add the following <Target> element to the project file:

    <Target Name="CreateLogsFolder" AfterTargets="Publish">
       <MakeDir Directories="$(PublishDir)Logs" 
                Condition="!Exists('$(PublishDir)Logs')" />
       <WriteLinesToFile File="$(PublishDir)Logs\.log" 
                         Lines="Generated file" 
                         Overwrite="True" 
                         Condition="!Exists('$(PublishDir)Logs\.log')" />
    </Target>
    

    O elemento <MakeDir> cria uma pasta Logs vazia na saída publicada.The <MakeDir> element creates an empty Logs folder in the published output. O elemento usa a propriedade PublishDir para determinar o local de destino no qual criar a pasta.The element uses the PublishDir property to determine the target location for creating the folder. Vários métodos de implantação, como a Implantação da Web, ignoram pastas vazias durante a implantação.Several deployment methods, such as Web Deploy, skip empty folders during deployment. O elemento <WriteLinesToFile> gera um arquivo na pasta Logs, o que garante a implantação da pasta no servidor.The <WriteLinesToFile> element generates a file in the Logs folder, which guarantees deployment of the folder to the server. A criação de pasta usando essa abordagem poderá falhar se o processo de trabalho não tiver acesso de gravação para a pasta de destino.Folder creation using this approach fails if the worker process doesn't have write access to the target folder.

  • Crie fisicamente o diretório Logs no servidor na implantação.Physically create the Logs directory on the server in the deployment.

O diretório de implantação requer permissões de leitura/execução.The deployment directory requires Read/Execute permissions. O diretório Logs requer permissões de leitura/gravação.The Logs directory requires Read/Write permissions. Diretórios adicionais em que os arquivos são gravados exigem permissões de leitura/gravação.Additional directories where files are written require Read/Write permissions.

Recursos adicionaisAdditional resources