dotnet clean

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

名称

dotnet clean - 清除项目输出。

摘要

dotnet clean [<PROJECT>|<SOLUTION>] [-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

说明

dotnet clean 命令可清除上一个生成的输出。 它以 MSBuild 目标 的形式实现,以便在运行命令时对项目进行评估。 只会清除在生成过程中创建的输出。 中间 (obj) 和最终输出 (bin) 文件夹都会被清除。

参数

PROJECT | SOLUTION

要清理的 MSBuild 项目或解决方案。 如果未指定项目或解决方案文件,MSBuild 会在当前工作目录中搜索文件扩展名以 projsln 结尾的文件并使用该文件。

选项

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

    清除指定运行时的输出文件夹。 在创建独立部署 (SCD) 时使用此选项。

  • --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 --configuration Release