Struttura di directory di ASP.NET CoreASP.NET Core directory structure

Di Luke LathamBy Luke Latham

La directory publish contiene gli asset distribuibili prodotti dal comando dotnet publish.The publish directory contains the app's deployable assets produced by the dotnet publish command. La directory contiene:The directory contains:

Tipo di appApp Type Struttura di directoryDirectory Structure
Distribuzione dipendente dal frameworkFramework-dependent Deployment
  • publish†publish†
    • Views† (app MVC; se non sono precompilate visualizzazioni)Views† (MVC apps; if views aren't precompiled)
    • Pages† (MVC o app Razor Pages; se non sono precompilate pagine)Pages† (MVC or Razor Pages apps; if pages aren't precompiled)
    • wwwroot†wwwroot†
    • *.dll files*.dll files
    • {NOME ASSEMBLY}.deps.json{ASSEMBLY NAME}.deps.json
    • {NOME ASSEMBLY}.dll{ASSEMBLY NAME}.dll
    • {NOME ASSEMBLY}.pdb{ASSEMBLY NAME}.pdb
    • {NOME ASSEMBLY}.Views.dll{ASSEMBLY NAME}.Views.dll
    • {NOME ASSEMBLY}.Views.pdb{ASSEMBLY NAME}.Views.pdb
    • {NOME ASSEMBLY}.runtimeconfig.json{ASSEMBLY NAME}.runtimeconfig.json
    • web.config (distribuzioni IIS)web.config (IIS deployments)
Distribuzione autonomaSelf-contained Deployment
  • publish†publish†
    • Views† (app MVC; se non sono precompilate visualizzazioni)Views† (MVC apps; if views aren't precompiled)
    • Pages† (MVC o app Razor Pages; se non sono precompilate pagine)Pages† (MVC or Razor Pages apps; if pages aren't precompiled)
    • wwwroot†wwwroot†
    • *.dll files*.dll files
    • {NOME ASSEMBLY}.deps.json{ASSEMBLY NAME}.deps.json
    • {NOME ASSEMBLY}.dll{ASSEMBLY NAME}.dll
    • {NOME ASSEMBLY}.exe{ASSEMBLY NAME}.exe
    • {NOME ASSEMBLY}.pdb{ASSEMBLY NAME}.pdb
    • {NOME ASSEMBLY}.Views.dll{ASSEMBLY NAME}.Views.dll
    • {NOME ASSEMBLY}.Views.pdb{ASSEMBLY NAME}.Views.pdb
    • {NOME ASSEMBLY}.runtimeconfig.json{ASSEMBLY NAME}.runtimeconfig.json
    • web.config (distribuzioni IIS)web.config (IIS deployments)

†Indica una directory†Indicates a directory

La directory publish rappresenta il percorso radice del contenuto, anche denominato percorso di base dell'applicazione, della distribuzione.The publish directory represents the content root path, also called the application base path, of the deployment. Qualsiasi nome venga assegnato alla directory publish dell'applicazione distribuita sul server, il relativo percorso viene usato come percorso fisico del server per l'app ospitata.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.

La directory wwwroot, se presente, contiene solo gli asset statici.The wwwroot directory, if present, only contains static assets.

La creazione di una cartella Logs è utile per la registrazione di debug avanzata del modulo ASP.NET Core.Creating a Logs folder is useful for ASP.NET Core Module enhanced debug logging. Le cartelle nel percorso specificato per il valore <handlerSetting> non vengono create automaticamente dal modulo e devono essere già presenti nella distribuzione per consentire al modulo di scrivere il log di debug.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.

È possibile creare una directory Logs per la distribuzione usando uno dei due approcci seguenti:A Logs directory can be created for the deployment using one of the following two approaches:

  • Aggiungere l'elemento <Target> seguente al file di progetto: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>
    

    L'elemento <MakeDir> crea una cartella Logs vuota nell'output pubblicato.The <MakeDir> element creates an empty Logs folder in the published output. L'elemento usa la proprietà PublishDir per determinare il percorso di destinazione per la creazione della cartella.The element uses the PublishDir property to determine the target location for creating the folder. Diversi metodi di distribuzione, ad esempio Distribuzione Web, ignorano le cartelle vuote durante la distribuzione.Several deployment methods, such as Web Deploy, skip empty folders during deployment. L'elemento <WriteLinesToFile> genera un file nella cartella Logs, che garantisce la distribuzione della cartella nel server.The <WriteLinesToFile> element generates a file in the Logs folder, which guarantees deployment of the folder to the server. La creazione della cartella con questo metodo ha esito negativo se il processo di lavoro non dispone dell'accesso in scrittura alla cartella di destinazione.Folder creation using this approach fails if the worker process doesn't have write access to the target folder.

  • Creare fisicamente la directory Logs sul server nella distribuzione.Physically create the Logs directory on the server in the deployment.

La directory di distribuzione richiede autorizzazioni di lettura/esecuzione.The deployment directory requires Read/Execute permissions. La directory Logs richiede autorizzazioni di lettura/scrittura.The Logs directory requires Read/Write permissions. Le directory aggiuntive in cui vengono scritti i file richiedono autorizzazioni di lettura/scrittura.Additional directories where files are written require Read/Write permissions.

Risorse aggiuntiveAdditional resources