Skip to content
Docs Try Aspire

aspire publish command

aspire publish - Generates deployment artifacts for an Aspire AppHost project.

Aspire CLI
aspire publish [options] [[--] <additional arguments>...]

The aspire publish command publishes resources by serializing them to disk. When this command is run, Aspire executes publishing pipeline steps that have been registered in the app model (for example, by environment resources). These steps serialize resources so that they can be consumed by deployment tools.

The Aspire CLI uses the following logic, in order, to determine which AppHost project to process:

  • The --apphost option.

    This option specifies the path to the Aspire AppHost project file to process.

  • The rooted aspire.config.json file.

    If the rooted config exists in the current directory, it’s used. If not, the CLI walks up the directory structure looking for it. If Aspire finds the rooted config, it uses the recorded AppHost information to determine which project to process. Legacy .aspire/settings.json files are still read during migration.

  • Searches the current directory and subdirectories.

    Starting in the current directory, the CLI gathers all AppHost projects from that directory and below. If a single project is discovered, it’s automatically selected. If multiple projects are discovered, they’re printed to the terminal for the user to manually select one of the projects.

    Once a project is selected, either automatically or manually, Aspire records that selection in the rooted configuration so later commands can reuse it.

The command performs the following steps to run an Aspire AppHost:

  • Creates or updates the rooted aspire.config.json file and records the selected AppHost there. Legacy .aspire/settings.json files are still read during migration.
  • Installs or verifies that Aspire’s local hosting certificates are installed and trusted.
  • Builds the AppHost project and its resources.
  • Starts the AppHost and its resources.
  • Executes all publishing pipeline steps registered in the app model.

The following options are available:

  • --

    Delimits arguments to aspire publish from arguments for the AppHost. All arguments after this delimiter are passed to the AppHost.

  • --apphost <apphost>

    The path to the Aspire AppHost project file.

  • -o, --output-path

    The output path for the generated artifacts. Defaults to ./aspire-output if not specified.

  • --log-level

    Set the minimum log level for pipeline logging. Valid values are: trace, debug, information, warning, error, critical. The default is information.

  • -e, --environment

    The environment to use for the operation. The default is Production.

  • --include-exception-details

    Include exception details (stack traces) in pipeline logs.

  • -?, -h, --help

    Prints help and usage documentation for the available commands and options.

  • -l, --log-level <Critical|Debug|Error|Information|None|Trace|Warning>

    Set the minimum log level for console output. Use this option to increase diagnostics while troubleshooting or reduce output in scripted runs.

  • --non-interactive

    Run the command in non-interactive mode, disabling all interactive prompts and spinners.

  • --nologo

    Suppress the startup banner and telemetry notice.

  • --banner

    Display the animated Aspire CLI welcome banner.

  • --wait-for-debugger

    Wait for a debugger to attach before running a command.

  • Search the current directory structure for AppHost projects to build and publish:

    Aspire CLI
    aspire publish
  • Publish a specific AppHost project:

    Aspire CLI
    aspire publish --apphost './projects/apphost/orchestration.AppHost.csproj'
  • Publish a specific AppHost project with arguments:

    Aspire CLI
    aspire publish --apphost './projects/apphost/orchestration.AppHost.csproj' -- -fast