dotnet clean

本文适用于:✔️ .NET 6 SDK 及更高版本

Name

dotnet clean - 清理项目的输出。

概要

dotnet clean [<PROJECT>|<SOLUTION>|<FILE>] [--artifacts-path <ARTIFACTS_DIR>]
    [-c|--configuration <CONFIGURATION>]
    [-f|--framework <FRAMEWORK>] [--interactive]
    [--nologo] [-o|--output <OUTPUT_DIRECTORY>]
    [-r|--runtime <RUNTIME_IDENTIFIER>] [--tl:[auto|on|off]]
    [-v|--verbosity <LEVEL>]

dotnet clean -h|--help

Description

dotnet clean 命令清理上一个版本的输出。 它作为 MSBuild 目标实现,因此在运行命令时评估项目。 只会清理在生成期间创建的输出。 将清理中间(obj)和最终输出(bin)文件夹。

Arguments

PROJECT | SOLUTION | FILE

要作的项目或解决方案或 C# (基于文件的应用)文件。 如果未指定文件,MSBuild 将在当前目录中搜索项目或解决方案。

  • PROJECT 是 C#、F# 或 Visual Basic 项目文件的路径和文件名,或者是包含 C#、F# 或 Visual Basic 项目文件的目录的路径。

  • SOLUTION 是解决方案文件的路径和文件名(.sln.slnx 扩展名),或包含解决方案文件的目录的路径。

  • FILE 是 .NET 10 中添加的参数。 基于文件的应用的路径和文件名。 基于文件的应用包含在没有相应项目 (.csproj) 文件的单个文件中生成和运行。 有关详细信息,请参阅 生成基于文件的 C# 应用

选项

  • --artifacts-path <ARTIFACTS_DIR>

    执行命令中的所有生成输出文件都将位于指定路径下的子文件夹中,由项目分隔。 有关详细信息,请参阅 Artifacts 输出布局。 自 .NET 8 SDK 起可用。

  • -c|--configuration <CONFIGURATION>

    定义生成配置。 大多数项目的默认值是 Debug,但你可以替代项目中的生成配置设置。 只有在生成期间指定此选项时才需要此选项。

  • -f|--framework <FRAMEWORK>

    在生成时指定的 框架 。 必须在 项目文件中定义框架。 如果在生成时指定了框架,则必须在清理时指定框架。

  • -?|-h|--help

    打印出有关如何使用命令的说明。

  • --interactive

    允许命令停止并等待用户输入或作。 例如,若要完成身份验证。 自 .NET Core 3.0 SDK 起可用。

  • --nologo

    不显示启动横幅或版权消息。

  • -o|--output <OUTPUT_DIRECTORY>

    包含要清理的生成项目的目录。 如果在生成项目时指定了框架,请使用 -f|--framework <FRAMEWORK> 输出目录开关指定开关。

    • .NET 7.0.200 SDK 及更高版本

      如果在解决方案上运行此命令时指定 --output 该选项,CLI 将发出警告(7.0.200 中的错误),因为输出路径的语义不明确。 --output不允许使用此选项,因为所有生成项目的所有输出都将复制到指定的目录中,该目录与多目标项目不兼容,以及具有不同版本的直接和可传递依赖项的项目。 有关详细信息,请参阅 解决方案级别 --output 选项不再对与生成相关的命令有效

  • -r|--runtime <RUNTIME_IDENTIFIER>

    清理指定运行时的输出文件夹。 创建 自包含部署 时会使用此配置。

  • --tl:[auto|on|off]

    指定是否应将 终端记录器 用于生成输出。 默认值为 auto,在启用终端日志记录之前先验证环境。 环境检查验证终端是否能够使用新式输出功能,并且未在启用新记录器之前使用重定向的标准输出。 on 跳过环境检查并启用终端日志记录。 off 跳过环境检查并使用默认控制台记录器。

    终端记录器显示还原阶段,后跟生成阶段。 在每个阶段,当前生成项目显示在终端底部。 生成的每个项目都会输出当前正在生成的 MSBuild 目标以及该目标花费的时间量。 可以搜索此信息,了解有关生成的详细信息。 完成项目生成后,将编写一个捕获的“生成已完成”部分:

    • 生成项目的名称。
    • 目标框架(如果多目标)。
    • 该生成的状态。
    • 该生成的主要输出(已超链接)。
    • 为该项目生成的任何诊断。

    此选项从 .NET 8 开始可用。

  • -v|--verbosity <LEVEL>

    设置命令的详细级别。 允许使用的值为 q[uiet]m[inimal]n[ormal]d[etailed]diag[nostic]。 默认值为 normal。 有关详细信息,请参阅 LoggerVerbosity

例子

  • 清理项目的默认生成:

    dotnet clean
    
  • 清理基于文件的程序:

    dotnet clean Program.cs.
    

    .NET SDK 10.0.100 中添加了基于文件的应用支持。

  • 清理使用发布配置生成的项目:

    dotnet clean --configuration Release