| File: Commands\Run\RunCommandDefinition.cs | Web Access |
| Project: src\sdk\src\Cli\Microsoft.DotNet.Cli.Definitions\Microsoft.DotNet.Cli.Definitions.csproj (Microsoft.DotNet.Cli.Definitions) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.Collections.ObjectModel; using System.CommandLine; using Microsoft.DotNet.Cli.CommandLine; namespace Microsoft.DotNet.Cli.Commands.Run; internal sealed class RunCommandDefinition : Command { private const string Link = "https://aka.ms/dotnet-run"; public readonly Option<string?> ConfigurationOption = CommonOptions.CreateConfigurationOption(CommandDefinitionStrings.RunConfigurationOptionDescription); public readonly Option<string> FrameworkOption = CommonOptions.CreateFrameworkOption(CommandDefinitionStrings.RunFrameworkOptionDescription); public readonly TargetPlatformOptions TargetPlatformOptions = new(CommandDefinitionStrings.RunRuntimeOptionDescription); public readonly Option<string> ProjectOption = new("--project") { Description = CommandDefinitionStrings.CmdProjectDescriptionFormat, HelpName = CommandDefinitionStrings.CommandOptionProjectHelpName }; public readonly Option<string> FileOption = new("--file") { Description = CommandDefinitionStrings.CommandOptionFileDescription, HelpName = CommandDefinitionStrings.CommandOptionFileHelpName, }; public readonly Option<ReadOnlyDictionary<string, string>?> PropertyOption = CommonOptions.CreatePropertyOption(); public readonly Option<string> LaunchProfileOption = new("--launch-profile", "-lp") { Description = CommandDefinitionStrings.CommandOptionLaunchProfileDescription, HelpName = CommandDefinitionStrings.CommandOptionLaunchProfileHelpName }; public readonly Option<bool> NoLaunchProfileOption = new("--no-launch-profile") { Description = CommandDefinitionStrings.CommandOptionNoLaunchProfileDescription, Arity = ArgumentArity.Zero }; public readonly Option<bool> NoLaunchProfileArgumentsOption = new("--no-launch-profile-arguments") { Description = CommandDefinitionStrings.CommandOptionNoLaunchProfileArgumentsDescription }; public readonly Option<string> DeviceOption = new("--device") { Description = CommandDefinitionStrings.CommandOptionDeviceDescription, HelpName = CommandDefinitionStrings.CommandOptionDeviceHelpName }; public readonly Option<bool> ListDevicesOption = new("--list-devices") { Description = CommandDefinitionStrings.CommandOptionListDevicesDescription, Arity = ArgumentArity.Zero }; public const string NoBuildOptionName = "--no-build"; public readonly Option<bool> NoBuildOption = new(NoBuildOptionName) { Description = CommandDefinitionStrings.CommandOptionNoBuildDescription, Arity = ArgumentArity.Zero }; public readonly Option<bool> NoRestoreOption = CommonOptions.CreateNoRestoreOption(); public readonly Option<bool> InteractiveOption = CommonOptions.CreateInteractiveMsBuildForwardOption(); public const string NoCacheOptionName = "--no-cache"; public readonly Option<bool> NoCacheOption = new(NoCacheOptionName) { Description = CommandDefinitionStrings.CommandOptionNoCacheDescription, Arity = ArgumentArity.Zero, }; public readonly Option<bool> SelfContainedOption = CommonOptions.CreateSelfContainedOption(); public readonly Option<bool> NoSelfContainedOption = CommonOptions.CreateNoSelfContainedOption(); public readonly Option<Utils.VerbosityOptions?> VerbosityOption = CommonOptions.CreateVerbosityOption(); public readonly Option<bool> DisableBuildServersOption = CommonOptions.CreateDisableBuildServersOption(); public readonly Option<string> ArtifactsPathOption = CommonOptions.CreateArtifactsPathOption(); public readonly Option<IReadOnlyDictionary<string, string>> EnvOption = CommonOptions.CreateEnvOption(); public readonly Argument<string[]> ApplicationArguments = new("applicationArguments") { DefaultValueFactory = _ => [], Description = "Arguments passed to the application that is being run." }; public RunCommandDefinition() : base("run", CommandDefinitionStrings.RunAppFullName) { this.DocsLink = Link; Options.Add(ConfigurationOption); Options.Add(FrameworkOption); Options.Add(ProjectOption); Options.Add(FileOption); Options.Add(PropertyOption); Options.Add(LaunchProfileOption); Options.Add(NoLaunchProfileOption); Options.Add(DeviceOption); Options.Add(ListDevicesOption); Options.Add(NoBuildOption); Options.Add(InteractiveOption); Options.Add(NoRestoreOption); Options.Add(NoCacheOption); Options.Add(SelfContainedOption); Options.Add(NoSelfContainedOption); Options.Add(VerbosityOption); TargetPlatformOptions.AddTo(Options); Options.Add(DisableBuildServersOption); Options.Add(ArtifactsPathOption); Options.Add(EnvOption); Arguments.Add(ApplicationArguments); } }