| File: Commands\Clean\CleanCommand.cs | Web Access |
| Project: src\sdk\src\Cli\dotnet\dotnet.csproj (dotnet) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.CommandLine; using Microsoft.DotNet.Cli.Commands.MSBuild; using Microsoft.DotNet.Cli.Commands.Run; using Microsoft.DotNet.Cli.Extensions; using Microsoft.DotNet.Cli.Utils; namespace Microsoft.DotNet.Cli.Commands.Clean; public sealed class CleanCommand(MSBuildArgs msbuildArgs, string? msbuildPath = null) : MSBuildForwardingApp(msbuildArgs, msbuildPath) { public static CommandBase FromArgs(string[] args, string? msbuildPath = null) { var result = Parser.Parse(["dotnet", "clean", .. args]); return FromParseResult(result, msbuildPath); } public static CommandBase FromParseResult(ParseResult result, string? msbuildPath = null) { var definition = (CleanCommandDefinition)result.CommandResult.Command; result.ShowHelpOrErrorIfAppropriate(); return DotNetCommandFactory.CreateVirtualOrPhysicalCommand( definition, definition.SlnOrProjectOrFileArgument, createVirtualCommand: static (msbuildArgs, appFilePath) => new VirtualProjectBuildingCommand( entryPointFileFullPath: appFilePath, msbuildArgs: msbuildArgs) { NoBuild = false, NoRestore = true, NoCache = true, NoWriteBuildMarkers = true, }, createPhysicalCommand: static (msbuildArgs, msbuildPath) => new CleanCommand(msbuildArgs, msbuildPath), optionsToUseWhenParsingMSBuildFlags: [ CommonOptions.CreatePropertyOption(), CommonOptions.CreateRestorePropertyOption(), CleanCommandDefinition.CreateTargetOption(), CommonOptions.CreateVerbosityOption(VerbosityOptions.normal), CommonOptions.CreateNoLogoOption() ], result, msbuildPath ); } public static int Run(ParseResult parseResult) { parseResult.HandleDebugSwitch(); return FromParseResult(parseResult).Execute(); } }