Структура каталогов ASP.NET Core

Каталог публикации содержит развертываемые ресурсы приложения, созданные командной dotnet publish. Каталог содержит следующее.

Тип приложения Структура каталогов
Исполняемый файл, зависящий от платформы (FDE)
  • publish†
    • Views† в приложениях MVC, если представления не компилируются заранее
    • Pages† в приложениях MVC или Razor Pages, если страницы не компилируются заранее
    • wwwroot†
    • DLL-файлы
    • {имя_сборки}.deps.json
    • {имя_сборки}.dll
    • {имя_сборки}{.расширение}.exe в Windows, без расширения в macOS или Linux
    • {имя_сборки}.pdb
    • {имя_сборки}.runtimeconfig.json
    • web.config (в развертываниях IIS)
    • createdump (служебная программа createdump в Linux)
    • *.so (общая библиотека объектов Linux)
    • *.а (архив macOS)
    • *.dylib (динамическая библиотека macOS)
Автономное развертывание (SCD)
  • publish†
    • Views† в приложениях MVC, если представления не компилируются заранее
    • Pages† в приложениях MVC или Razor Pages, если страницы не компилируются заранее
    • wwwroot†
    • DLL-файлы
    • {имя_сборки}.deps.json
    • {имя_сборки}.dll
    • {имя_сборки}{.расширение}.exe в Windows, без расширения в macOS или Linux
    • {имя_сборки}.pdb
    • {имя_сборки}.runtimeconfig.json
    • web.config (в развертываниях IIS)

†Обозначает каталог

Каталог публикации представляет корневой путь содержимого для развертывания, который также называется путь к базовой папке приложения. Независимо от того, какое имя присвоено каталогу публикации, развернутого на сервере приложения, именно это расположение обозначает физический путь к размещенному приложению на этом сервере.

Каталог wwwroot, если таковой имеется, содержит только статические активы.

Дополнительные ресурсы

Каталог публикации содержит развертываемые ресурсы приложения, созданные командной dotnet publish. Каталог содержит следующее.

Тип приложения Структура каталогов
Исполняемый файл, зависящий от платформы (FDE)
  • publish†
    • Views† в приложениях MVC, если представления не компилируются заранее
    • Pages† в приложениях MVC или Razor Pages, если страницы не компилируются заранее
    • wwwroot†
    • DLL-файлы
    • {имя_сборки}.deps.json
    • {имя_сборки}.dll
    • {имя_сборки}{.расширение}.exe в Windows, без расширения в macOS или Linux
    • {имя_сборки}.pdb
    • {имя_сборки}.Views.dll
    • {имя_сборки}.Views.pdb
    • {имя_сборки}.runtimeconfig.json
    • web.config (в развертываниях IIS)
    • createdump (служебная программа createdump в Linux)
    • *.so (общая библиотека объектов Linux)
    • *.а (архив macOS)
    • *.dylib (динамическая библиотека macOS)
Автономное развертывание (SCD)
  • publish†
    • Views† в приложениях MVC, если представления не компилируются заранее
    • Pages† в приложениях MVC или Razor Pages, если страницы не компилируются заранее
    • wwwroot†
    • DLL-файлы
    • {имя_сборки}.deps.json
    • {имя_сборки}.dll
    • {имя_сборки}{.расширение}.exe в Windows, без расширения в macOS или Linux
    • {имя_сборки}.pdb
    • {имя_сборки}.Views.dll
    • {имя_сборки}.Views.pdb
    • {имя_сборки}.runtimeconfig.json
    • web.config (в развертываниях IIS)

†Обозначает каталог

Каталог публикации представляет корневой путь содержимого для развертывания, который также называется путь к базовой папке приложения. Независимо от того, какое имя присвоено каталогу публикации, развернутого на сервере приложения, именно это расположение обозначает физический путь к размещенному приложению на этом сервере.

Каталог wwwroot, если таковой имеется, содержит только статические активы.

Дополнительные ресурсы

Каталог публикации содержит развертываемые ресурсы приложения, созданные командной dotnet publish. Каталог содержит следующее.

Тип приложения Структура каталогов
Исполняемый файл, зависящий от платформы (FDE)
  • publish†
    • Views† в приложениях MVC, если представления не компилируются заранее
    • Pages† в приложениях MVC или Razor Pages, если страницы не компилируются заранее
    • wwwroot†
    • DLL-файлы
    • {имя_сборки}.deps.json
    • {имя_сборки}.dll
    • {имя_сборки}{.расширение}.exe в Windows, без расширения в macOS или Linux
    • {имя_сборки}.pdb
    • {имя_сборки}.Views.dll
    • {имя_сборки}.Views.pdb
    • {имя_сборки}.runtimeconfig.json
    • web.config (в развертываниях IIS)
    • createdump (служебная программа createdump в Linux)
    • *.so (общая библиотека объектов Linux)
    • *.а (архив macOS)
    • *.dylib (динамическая библиотека macOS)
Автономное развертывание (SCD)
  • publish†
    • Views† в приложениях MVC, если представления не компилируются заранее
    • Pages† в приложениях MVC или Razor Pages, если страницы не компилируются заранее
    • wwwroot†
    • DLL-файлы
    • {имя_сборки}.deps.json
    • {имя_сборки}.dll
    • {имя_сборки}.exe
    • {имя_сборки}.pdb
    • {имя_сборки}.Views.dll
    • {имя_сборки}.Views.pdb
    • {имя_сборки}.runtimeconfig.json
    • web.config (в развертываниях IIS)

†Обозначает каталог

Каталог публикации представляет корневой путь содержимого для развертывания, который также называется путь к базовой папке приложения. Независимо от того, какое имя присвоено каталогу публикации, развернутого на сервере приложения, именно это расположение обозначает физический путь к размещенному приложению на этом сервере.

Каталог wwwroot, если таковой имеется, содержит только статические активы.

Создание папки Logs полезно для ведения расширенного журнала отладки модуля ASP.NET Core. Папки, указанные в пути к значению <handlerSetting>, не создаются автоматически и должны заранее существовать в развертывании, чтобы модуль мог осуществлять запись в журнал отладки.

Каталог Logs для развертывания можно создать одним из двух указанных далее методов.

  • Добавьте в файл проекта элемент <Target> следующего содержания:

    <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>
    

    Элемент <MakeDir> создает пустую папку Logs в публикуемых выходных данных. Этот элемент использует свойство PublishDir, чтобы определить целевое расположение для создания папки. Несколько методов развертывания, например веб-развертывание, пропускают пустые папки во время развертывания. Элемент <WriteLinesToFile> создает файл в папке Logs, чтобы гарантировать ее развертывание на целевом сервере. Создание папки с помощью этого подхода завершается ошибкой, если рабочий процесс не имеет прав на запись в целевую папку.

  • Самостоятельно создайте физическую папку Logs на сервере в каталоге развертывания.

Для каталога развертывания нужны права на чтение и выполнение. Для каталога Logs нужны права на чтение и запись. Для дополнительных каталогов, в которые записываются файлы, нужны права на чтение и запись.

Дополнительные ресурсы