0
Моя корзина
Каталог
0
Моя корзина
Server360 / Разработка / [C#] Разбор содержимого папки после dotnet publish

[C#] Разбор содержимого папки после dotnet publish

dotnet publish -c Release -r win-x64 –self-contained true -p:PublishSingleFile=true

При вызове этой команды появляется папка bin\Release\net8.0\win-x64\ с файлами, а в ней папка publish

Где находится итоговый скомпилированный файл программы? и что это за файлы и папки?

После выполнения команды:

dotnet publish -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true

.NET создает скомпилированное приложение в папке bin\Release\net8.0\win-x64\publish\.

Где находится итоговый исполняемый файл?

Финальный exe-файл (если для Windows) или бинарный файл (если для Linux/macOS) находится в папке:

bin\Release\net8.0\win-x64\publish\DynamicDnsUpdater.exe

или без .exe, если это Linux/macOS.

Чтобы убедиться, можно выполнить:

cd bin\Release\net8.0\win-x64\publish\
dir

или в терминале PowerShell:

Get-ChildItem bin\Release\net8.0\win-x64\publish\

Что значат папки и файлы в bin\Release\net8.0\win-x64\?

  1. publish/ — папка с финальной версией приложения, готовой к развертыванию.
    • Если сборка самодостаточная (--self-contained true), в ней будет только один EXE-файл.
    • Если не самодостаточная, то в этой папке будет множество .dll-файлов.
  2. Исполняемый файл в win-x64/ (без publish/):
    • Это промежуточная версия сборки, которая содержит все зависимости и файлы от .NET, но не является финальной опубликованной версией.
  3. Файлы и библиотеки в win-x64/:
    • DynamicDnsUpdater.exe — скомпилированный исполняемый файл приложения.
    • DynamicDnsUpdater.pdb — отладочная информация (можно удалить, если не отлаживаешь).
    • DynamicDnsUpdater.deps.json — зависимости проекта.
    • DynamicDnsUpdater.runtimeconfig.json — настройки среды выполнения.
    • .dll-файлы (например, System.*) — библиотеки .NET, если сборка не самодостаточная.

Как запустить итоговый файл?

Перейди в publish и запусти:

cd bin\Release\net8.0\win-x64\publish\
DynamicDnsUpdater.exe

Если хочешь самый легковесный вариант, убедись, что файл DynamicDnsUpdater.exe действительно один, а если нет — добавь флаг:

dotnet publish -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -p:EnableCompressionInSingleFile=true

Этот флаг уменьшает размер исполняемого файла.

Вывод

  • Итоговый файл находится в bin\Release\net8.0\win-x64\publish\DynamicDnsUpdater.exe.
  • win-x64/ содержит промежуточную сборку с зависимостями.
  • publish/ — финальная версия, готовая к запуску и развертыванию.

Если после сборки у тебя всё равно много файлов и нет одного exe-файла, уточни — разберемся! 🚀

«
»

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *