コード例 #1
0
        public static int Run(string[] args)
        {
            DebugHelper.HandleDebugSwitch(ref args);

            CommandLineApplication app = new CommandLineApplication(throwOnUnexpectedArg: false);

            app.Name                      = "dotnet publish";
            app.FullName                  = ".NET Publisher";
            app.Description               = "Publisher for the .NET Platform";
            app.AllowArgumentSeparator    = true;
            app.ArgumentSeparatorHelpText = HelpMessageStrings.MSBuildAdditionalArgsHelpText;
            app.HelpOption("-h|--help");

            CommandArgument projectArgument = app.Argument("<PROJECT>",
                                                           "The MSBuild project file to publish. If a project file is not specified, MSBuild searches the current" +
                                                           " working directory for a file that has a file extension that ends in `proj` and uses that file.");

            CommandOption frameworkOption = app.Option(
                "-f|--framework <FRAMEWORK>", "Target framework to publish for",
                CommandOptionType.SingleValue);

            CommandOption runtimeOption = app.Option(
                "-r|--runtime <RUNTIME_IDENTIFIER>", "Target runtime to publish for. The default is to publish a portable application.",
                CommandOptionType.SingleValue);

            CommandOption outputOption = app.Option(
                "-o|--output <OUTPUT_DIR>", "Path in which to publish the app",
                CommandOptionType.SingleValue);

            CommandOption configurationOption = app.Option(
                "-c|--configuration <CONFIGURATION>", "Configuration under which to build",
                CommandOptionType.SingleValue);

            CommandOption versionSuffixOption = app.Option(
                "--version-suffix <VERSION_SUFFIX>", "Defines the value for the $(VersionSuffix) property in the project",
                CommandOptionType.SingleValue);
            CommandOption verbosityOption = MSBuildForwardingApp.AddVerbosityOption(app);

            app.OnExecute(() =>
            {
                var publish = new PublishCommand();

                publish.ProjectPath           = projectArgument.Value;
                publish.Framework             = frameworkOption.Value();
                publish.Runtime               = runtimeOption.Value();
                publish.OutputPath            = outputOption.Value();
                publish.Configuration         = configurationOption.Value();
                publish.VersionSuffix         = versionSuffixOption.Value();
                publish.Verbosity             = verbosityOption.Value();
                publish.ExtraMSBuildArguments = app.RemainingArguments;

                return(publish.Execute());
            });

            return(app.Execute(args));
        }
コード例 #2
0
        public static int Run(string[] args)
        {
            DebugHelper.HandleDebugSwitch(ref args);

            CommandLineApplication app = new CommandLineApplication(throwOnUnexpectedArg: false);

            app.Name        = "dotnet publish";
            app.FullName    = LocalizableStrings.AppFullName;
            app.Description = LocalizableStrings.AppDescription;
            app.HandleRemainingArguments  = true;
            app.ArgumentSeparatorHelpText = HelpMessageStrings.MSBuildAdditionalArgsHelpText;
            app.HelpOption("-h|--help");

            CommandArgument projectArgument = app.Argument($"<{LocalizableStrings.ProjectArgument}>",
                                                           LocalizableStrings.ProjectArgDescription);

            CommandOption frameworkOption = app.Option(
                $"-f|--framework <{LocalizableStrings.FrameworkOption}>", LocalizableStrings.FrameworkOptionDescription,
                CommandOptionType.SingleValue);

            CommandOption runtimeOption = app.Option(
                $"-r|--runtime <{LocalizableStrings.RuntimeOption}>", LocalizableStrings.RuntimeOptionDescription,
                CommandOptionType.SingleValue);

            CommandOption outputOption = app.Option(
                $"-o|--output <{LocalizableStrings.OutputOption}>", LocalizableStrings.OutputOptionDescription,
                CommandOptionType.SingleValue);

            CommandOption configurationOption = app.Option(
                $"-c|--configuration <{LocalizableStrings.ConfigurationOption}>", LocalizableStrings.ConfigurationOptionDescription,
                CommandOptionType.SingleValue);

            CommandOption versionSuffixOption = app.Option(
                $"--version-suffix <{LocalizableStrings.VersionSuffixOption}>", LocalizableStrings.VersionSuffixOptionDescription,
                CommandOptionType.SingleValue);
            CommandOption verbosityOption = MSBuildForwardingApp.AddVerbosityOption(app);

            app.OnExecute(() =>
            {
                var publish = new PublishCommand();

                publish.ProjectPath           = projectArgument.Value;
                publish.Framework             = frameworkOption.Value();
                publish.Runtime               = runtimeOption.Value();
                publish.OutputPath            = outputOption.Value();
                publish.Configuration         = configurationOption.Value();
                publish.VersionSuffix         = versionSuffixOption.Value();
                publish.Verbosity             = verbosityOption.Value();
                publish.ExtraMSBuildArguments = app.RemainingArguments;

                return(publish.Execute());
            });

            return(app.Execute(args));
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: spboyer/cli
        public static int Run(string[] args)
        {
            DebugHelper.HandleDebugSwitch(ref args);

            CommandLineApplication app = new CommandLineApplication(throwOnUnexpectedArg: false);

            app.Name        = "dotnet build";
            app.FullName    = LocalizableStrings.AppFullName;
            app.Description = LocalizableStrings.AppDescription;
            app.ArgumentSeparatorHelpText = HelpMessageStrings.MSBuildAdditionalArgsHelpText;
            app.HandleRemainingArguments  = true;
            app.HelpOption("-h|--help");

            CommandArgument projectArgument = app.Argument($"<{LocalizableStrings.ProjectArgumentValueName}>", LocalizableStrings.ProjectArgumentDescription);

            CommandOption outputOption    = app.Option($"-o|--output <{LocalizableStrings.OutputOptionName}>", LocalizableStrings.OutputOptionDescription, CommandOptionType.SingleValue);
            CommandOption frameworkOption = app.Option($"-f|--framework <{LocalizableStrings.FrameworkOptionName}>", LocalizableStrings.FrameworkOptionDescription, CommandOptionType.SingleValue);
            CommandOption runtimeOption   = app.Option(
                $"-r|--runtime <{LocalizableStrings.RuntimeOptionName}>", LocalizableStrings.RuntimeOptionDescription,
                CommandOptionType.SingleValue);
            CommandOption configurationOption = app.Option($"-c|--configuration <{LocalizableStrings.ConfigurationOptionName}>", LocalizableStrings.ConfigurationOptionDescription, CommandOptionType.SingleValue);
            CommandOption versionSuffixOption = app.Option($"--version-suffix <{LocalizableStrings.VersionSuffixOptionName}>", LocalizableStrings.VersionSuffixOptionDescription, CommandOptionType.SingleValue);

            CommandOption noIncrementalOption  = app.Option("--no-incremental", LocalizableStrings.NoIncrementialOptionDescription, CommandOptionType.NoValue);
            CommandOption noDependenciesOption = app.Option("--no-dependencies", LocalizableStrings.NoDependenciesOptionDescription, CommandOptionType.NoValue);
            CommandOption verbosityOption      = MSBuildForwardingApp.AddVerbosityOption(app);

            app.OnExecute(() =>
            {
                List <string> msbuildArgs = new List <string>();

                if (!string.IsNullOrEmpty(projectArgument.Value))
                {
                    msbuildArgs.Add(projectArgument.Value);
                }

                if (noIncrementalOption.HasValue())
                {
                    msbuildArgs.Add("/t:Rebuild");
                }
                else
                {
                    msbuildArgs.Add("/t:Build");
                }

                if (outputOption.HasValue())
                {
                    msbuildArgs.Add($"/p:OutputPath={outputOption.Value()}");
                }

                if (frameworkOption.HasValue())
                {
                    msbuildArgs.Add($"/p:TargetFramework={frameworkOption.Value()}");
                }

                if (runtimeOption.HasValue())
                {
                    msbuildArgs.Add($"/p:RuntimeIdentifier={runtimeOption.Value()}");
                }

                if (configurationOption.HasValue())
                {
                    msbuildArgs.Add($"/p:Configuration={configurationOption.Value()}");
                }

                if (versionSuffixOption.HasValue())
                {
                    msbuildArgs.Add($"/p:VersionSuffix={versionSuffixOption.Value()}");
                }

                if (noDependenciesOption.HasValue())
                {
                    msbuildArgs.Add("/p:BuildProjectReferences=false");
                }

                if (verbosityOption.HasValue())
                {
                    msbuildArgs.Add($"/verbosity:{verbosityOption.Value()}");
                }

                msbuildArgs.Add($"/clp:Summary");

                msbuildArgs.AddRange(app.RemainingArguments);

                return(new MSBuildForwardingApp(msbuildArgs).Execute());
            });

            return(app.Execute(args));
        }
コード例 #4
0
ファイル: Program.cs プロジェクト: wen101016/cli
        public static int Run(string[] args)
        {
            DebugHelper.HandleDebugSwitch(ref args);

            CommandLineApplication app = new CommandLineApplication(throwOnUnexpectedArg: false)
            {
                Name                      = "dotnet clean",
                FullName                  = ".NET Clean Command",
                Description               = "Command to clean previously generated build outputs.",
                AllowArgumentSeparator    = true,
                ArgumentSeparatorHelpText = HelpMessageStrings.MSBuildAdditionalArgsHelpText
            };

            app.HelpOption("-h|--help");

            CommandArgument projectArgument = app.Argument("<PROJECT>",
                                                           "The MSBuild project file to build. If a project file is not specified," +
                                                           " MSBuild searches the current working directory for a file that has a file extension that ends in `proj` and uses that file.");

            CommandOption outputOption        = app.Option("-o|--output <OUTPUT_DIR>", "Directory in which the build outputs have been placed", CommandOptionType.SingleValue);
            CommandOption frameworkOption     = app.Option("-f|--framework <FRAMEWORK>", "Clean a specific framework", CommandOptionType.SingleValue);
            CommandOption configurationOption = app.Option("-c|--configuration <CONFIGURATION>", "Clean a specific configuration", CommandOptionType.SingleValue);
            CommandOption verbosityOption     = MSBuildForwardingApp.AddVerbosityOption(app);

            app.OnExecute(() =>
            {
                List <string> msbuildArgs = new List <string>();

                if (!string.IsNullOrEmpty(projectArgument.Value))
                {
                    msbuildArgs.Add(projectArgument.Value);
                }

                msbuildArgs.Add("/t:Clean");

                if (outputOption.HasValue())
                {
                    msbuildArgs.Add($"/p:OutputPath={outputOption.Value()}");
                }

                if (frameworkOption.HasValue())
                {
                    msbuildArgs.Add($"/p:TargetFramework={frameworkOption.Value()}");
                }

                if (configurationOption.HasValue())
                {
                    msbuildArgs.Add($"/p:Configuration={configurationOption.Value()}");
                }

                if (verbosityOption.HasValue())
                {
                    msbuildArgs.Add($"/verbosity:{verbosityOption.Value()}");
                }

                msbuildArgs.AddRange(app.RemainingArguments);

                return(new MSBuildForwardingApp(msbuildArgs).Execute());
            });

            return(app.Execute(args));
        }
コード例 #5
0
ファイル: Program.cs プロジェクト: vladdou/cli
        public static CacheCommand FromArgs(string[] args, string msbuildPath = null)
        {
            DebugHelper.HandleDebugSwitch(ref args);

            var app = new CommandLineApplication(throwOnUnexpectedArg: false);

            app.Name                      = "dotnet cache";
            app.FullName                  = LocalizableStrings.AppFullName;
            app.Description               = LocalizableStrings.AppDescription;
            app.AllowArgumentSeparator    = true;
            app.ArgumentSeparatorHelpText = HelpMessageStrings.MSBuildAdditionalArgsHelpText;
            app.HelpOption("-h|--help");

            CommandOption projectArgument = app.Option(
                $"-e|--entries <{LocalizableStrings.ProjectEntries}>", LocalizableStrings.ProjectEntryDescription,
                CommandOptionType.SingleValue);

            CommandOption frameworkOption = app.Option(
                $"-f|--framework <{LocalizableStrings.FrameworkOption}>", LocalizableStrings.FrameworkOptionDescription,
                CommandOptionType.SingleValue);

            CommandOption runtimeOption = app.Option(
                $"-r|--runtime <{LocalizableStrings.RuntimeOption}>", LocalizableStrings.RuntimeOptionDescription,
                CommandOptionType.SingleValue);

            CommandOption outputOption = app.Option(
                $"-o|--output <{LocalizableStrings.OutputOption}>", LocalizableStrings.OutputOptionDescription,
                CommandOptionType.SingleValue);

            CommandOption fxOption = app.Option(
                $"--framework-version <{LocalizableStrings.FrameworkVersionOption}>", LocalizableStrings.FrameworkVersionOptionDescription,
                CommandOptionType.SingleValue);

            CommandOption skipOptimizationOption = app.Option(
                $"--skip-optimization", LocalizableStrings.SkipOptimizationOptionDescription,
                CommandOptionType.NoValue);

            CommandOption workingDir = app.Option(
                $"-w |--working-dir <{LocalizableStrings.IntermediateWorkingDirOption}>", LocalizableStrings.IntermediateWorkingDirOptionDescription,
                CommandOptionType.SingleValue);

            CommandOption preserveWorkingDir = app.Option(
                $"--preserve-working-dir", LocalizableStrings.PreserveIntermediateWorkingDirOptionDescription,
                CommandOptionType.NoValue);

            CommandOption verbosityOption = MSBuildForwardingApp.AddVerbosityOption(app);

            List <string> msbuildArgs = null;

            app.OnExecute(() =>
            {
                msbuildArgs = new List <string>();

                if (string.IsNullOrEmpty(projectArgument.Value()))
                {
                    throw new InvalidOperationException(LocalizableStrings.SpecifyEntries);
                }

                msbuildArgs.Add("/t:ComposeCache");
                msbuildArgs.Add(projectArgument.Value());

                if (!string.IsNullOrEmpty(frameworkOption.Value()))
                {
                    msbuildArgs.Add($"/p:TargetFramework={frameworkOption.Value()}");
                }

                if (!string.IsNullOrEmpty(runtimeOption.Value()))
                {
                    msbuildArgs.Add($"/p:RuntimeIdentifier={runtimeOption.Value()}");
                }

                if (!string.IsNullOrEmpty(outputOption.Value()))
                {
                    var outputPath = Path.GetFullPath(outputOption.Value());
                    msbuildArgs.Add($"/p:ComposeDir={outputPath}");
                }

                if (!string.IsNullOrEmpty(fxOption.Value()))
                {
                    msbuildArgs.Add($"/p:FX_Version={fxOption.Value()}");
                }

                if (!string.IsNullOrEmpty(workingDir.Value()))
                {
                    msbuildArgs.Add($"/p:ComposeWorkingDir={workingDir.Value()}");
                }

                if (skipOptimizationOption.HasValue())
                {
                    msbuildArgs.Add($"/p:SkipOptimization={skipOptimizationOption.HasValue()}");
                }

                if (preserveWorkingDir.HasValue())
                {
                    msbuildArgs.Add($"/p:PreserveComposeWorkingDir={preserveWorkingDir.HasValue()}");
                }

                if (!string.IsNullOrEmpty(verbosityOption.Value()))
                {
                    msbuildArgs.Add($"/verbosity:{verbosityOption.Value()}");
                }

                msbuildArgs.AddRange(app.RemainingArguments);

                return(0);
            });

            int exitCode = app.Execute(args);

            if (msbuildArgs == null)
            {
                throw new CommandCreationException(exitCode);
            }

            return(new CacheCommand(msbuildArgs, msbuildPath));
        }
コード例 #6
0
        public static int Run(string[] args)
        {
            DebugHelper.HandleDebugSwitch(ref args);

            CommandLineApplication app = new CommandLineApplication(throwOnUnexpectedArg: false)
            {
                Name                      = "dotnet clean",
                FullName                  = LocalizableStrings.AppFullName,
                Description               = LocalizableStrings.AppDescription,
                AllowArgumentSeparator    = true,
                ArgumentSeparatorHelpText = HelpMessageStrings.MSBuildAdditionalArgsHelpText
            };

            app.HelpOption("-h|--help");

            CommandArgument projectArgument = app.Argument(
                $"<{LocalizableStrings.CmdArgProject}>",
                LocalizableStrings.CmdArgProjDescription);

            CommandOption outputOption = app.Option(
                $"-o|--output <{LocalizableStrings.CmdOutputDir}>",
                LocalizableStrings.CmdOutputDirDescription,
                CommandOptionType.SingleValue);
            CommandOption frameworkOption = app.Option(
                $"-f|--framework <{LocalizableStrings.CmdFramework}>",
                LocalizableStrings.CmdFrameworkDescription,
                CommandOptionType.SingleValue);
            CommandOption configurationOption = app.Option(
                $"-c|--configuration <{LocalizableStrings.CmdConfiguration}>",
                LocalizableStrings.CmdConfigurationDescription,
                CommandOptionType.SingleValue);
            CommandOption verbosityOption = MSBuildForwardingApp.AddVerbosityOption(app);

            app.OnExecute(() =>
            {
                List <string> msbuildArgs = new List <string>();

                if (!string.IsNullOrEmpty(projectArgument.Value))
                {
                    msbuildArgs.Add(projectArgument.Value);
                }

                msbuildArgs.Add("/t:Clean");

                if (outputOption.HasValue())
                {
                    msbuildArgs.Add($"/p:OutputPath={outputOption.Value()}");
                }

                if (frameworkOption.HasValue())
                {
                    msbuildArgs.Add($"/p:TargetFramework={frameworkOption.Value()}");
                }

                if (configurationOption.HasValue())
                {
                    msbuildArgs.Add($"/p:Configuration={configurationOption.Value()}");
                }

                if (verbosityOption.HasValue())
                {
                    msbuildArgs.Add($"/verbosity:{verbosityOption.Value()}");
                }

                msbuildArgs.AddRange(app.RemainingArguments);

                return(new MSBuildForwardingApp(msbuildArgs).Execute());
            });

            return(app.Execute(args));
        }
コード例 #7
0
        public static int Run(string[] args)
        {
            DebugHelper.HandleDebugSwitch(ref args);

            var cmd = new CommandLineApplication(throwOnUnexpectedArg: false)
            {
                Name        = "dotnet test",
                FullName    = ".NET Test Driver",
                Description = "Test Driver for the .NET Platform"
            };

            cmd.HelpOption("-h|--help");

            var argRoot = cmd.Argument(
                "<PROJECT>",
                "The project to test, defaults to the current directory.",
                multipleValues: false);

            var settingOption = cmd.Option(
                "-s|--settings <SettingsFile>",
                "Settings to use when running tests.",
                CommandOptionType.SingleValue);

            var listTestsOption = cmd.Option(
                "-lt|--listTests",
                @"Lists discovered tests",
                CommandOptionType.NoValue);

            var testCaseFilterOption = cmd.Option(
                "-tcf|--testCaseFilter <Expression>",
                @"Run tests that match the given expression.
                                        Examples:
                                        --testCaseFilter:""Priority = 1""
                                        --testCaseFilter: ""(FullyQualifiedName~Nightly | Name = MyTestMethod)""",
                CommandOptionType.SingleValue);

            var testAdapterPathOption = cmd.Option(
                "-tap|--testAdapterPath",
                @"Use custom adapters from the given path in the test run.
                                        Example: --testAdapterPath:<pathToCustomAdapters>",
                CommandOptionType.SingleValue);

            var loggerOption = cmd.Option(
                "-l|--logger <LoggerUri/FriendlyName>",
                @"Specify a logger for test results. 
                                        Example: --logger:trx",
                CommandOptionType.SingleValue);

            var configurationOption = cmd.Option(
                "-c|--configuration <configuration>",
                @"Configuration under which to build, i.e. Debug/Release",
                CommandOptionType.SingleValue);

            var frameworkOption = cmd.Option(
                "-f|--framework <FrameworkVersion>",
                @"Looks for test binaries for a specific framework",
                CommandOptionType.SingleValue);

            var outputOption = cmd.Option(
                "-o|--output <OutputDir>",
                @"Directory in which to find the binaries to be run",
                CommandOptionType.SingleValue);

            var diagOption = cmd.Option(
                "-d|--diag <PathToLogFile>",
                @"Enable verbose logs for test platform.
                                        Logs are written to the provided file.",
                CommandOptionType.SingleValue);

            var noBuildtOption = cmd.Option(
                "--noBuild",
                @"Do not build project before testing.",
                CommandOptionType.NoValue);

            CommandOption verbosityOption = MSBuildForwardingApp.AddVerbosityOption(cmd);

            cmd.OnExecute(() =>
            {
                var msbuildArgs = new List <string>()
                {
                    "/t:VSTest"
                };

                msbuildArgs.Add("/nologo");

                if (settingOption.HasValue())
                {
                    msbuildArgs.Add($"/p:VSTestSetting={settingOption.Value()}");
                }

                if (listTestsOption.HasValue())
                {
                    msbuildArgs.Add($"/p:VSTestListTests=true");
                }

                if (testCaseFilterOption.HasValue())
                {
                    msbuildArgs.Add($"/p:VSTestTestCaseFilter={testCaseFilterOption.Value()}");
                }

                if (testAdapterPathOption.HasValue())
                {
                    msbuildArgs.Add($"/p:VSTestTestAdapterPath={testAdapterPathOption.Value()}");
                }

                if (loggerOption.HasValue())
                {
                    msbuildArgs.Add($"/p:VSTestLogger={string.Join(";", loggerOption.Values)}");
                }

                if (configurationOption.HasValue())
                {
                    msbuildArgs.Add($"/p:Configuration={configurationOption.Value()}");
                }

                if (frameworkOption.HasValue())
                {
                    msbuildArgs.Add($"/p:TargetFramework={frameworkOption.Value()}");
                }

                if (outputOption.HasValue())
                {
                    msbuildArgs.Add($"/p:OutputPath={outputOption.Value()}");
                }

                if (diagOption.HasValue())
                {
                    msbuildArgs.Add($"/p:VSTestDiag={diagOption.Value()}");
                }

                if (noBuildtOption.HasValue())
                {
                    msbuildArgs.Add($"/p:VSTestNoBuild=true");
                }

                if (verbosityOption.HasValue())
                {
                    msbuildArgs.Add($"/verbosity:{verbosityOption.Value()}");
                }
                else
                {
                    msbuildArgs.Add("/verbosity:quiet");
                }

                string defaultproject = GetSingleTestProjectToRunTestIfNotProvided(argRoot.Value, cmd.RemainingArguments);

                if (!string.IsNullOrEmpty(defaultproject))
                {
                    msbuildArgs.Add(defaultproject);
                }

                if (!string.IsNullOrEmpty(argRoot.Value))
                {
                    msbuildArgs.Add(argRoot.Value);
                }

                // Add remaining arguments that the parser did not understand,
                msbuildArgs.AddRange(cmd.RemainingArguments);

                return(new MSBuildForwardingApp(msbuildArgs).Execute());
            });

            return(cmd.Execute(args));
        }
コード例 #8
0
ファイル: Program.cs プロジェクト: wlhutchison/cli
        public static int Run(string[] args)
        {
            DebugHelper.HandleDebugSwitch(ref args);

            var cmd = new CommandLineApplication(throwOnUnexpectedArg: false)
            {
                Name        = "dotnet test",
                FullName    = LocalizableStrings.AppFullName,
                Description = LocalizableStrings.AppDescription,
                HandleRemainingArguments  = true,
                ArgumentSeparatorHelpText = HelpMessageStrings.MSBuildAdditionalArgsHelpText
            };

            cmd.HelpOption("-h|--help");

            var argRoot = cmd.Argument(
                $"<{LocalizableStrings.CmdArgProject}>",
                LocalizableStrings.CmdArgDescription,
                multipleValues: false);

            var settingOption = cmd.Option(
                $"-s|--settings <{LocalizableStrings.CmdSettingsFile}>",
                LocalizableStrings.CmdSettingsDescription,
                CommandOptionType.SingleValue);

            var listTestsOption = cmd.Option(
                "-t|--list-tests",
                LocalizableStrings.CmdListTestsDescription,
                CommandOptionType.NoValue);

            var testCaseFilterOption = cmd.Option(
                $"--filter <{LocalizableStrings.CmdTestCaseFilterExpression}>",
                LocalizableStrings.CmdTestCaseFilterDescription,
                CommandOptionType.SingleValue);

            var testAdapterPathOption = cmd.Option(
                "-a|--test-adapter-path",
                LocalizableStrings.CmdTestAdapterPathDescription,
                CommandOptionType.SingleValue);

            var loggerOption = cmd.Option(
                $"-l|--logger <{LocalizableStrings.CmdLoggerOption}>",
                LocalizableStrings.CmdLoggerDescription,
                CommandOptionType.SingleValue);

            var configurationOption = cmd.Option(
                $"-c|--configuration <{LocalizableStrings.CmdConfiguration}>",
                LocalizableStrings.CmdConfigDescription,
                CommandOptionType.SingleValue);

            var frameworkOption = cmd.Option(
                $"-f|--framework <{LocalizableStrings.CmdFramework}>",
                LocalizableStrings.CmdFrameworkDescription,
                CommandOptionType.SingleValue);

            var outputOption = cmd.Option(
                $"-o|--output <{LocalizableStrings.CmdOutputDir}>",
                LocalizableStrings.CmdOutputDescription,
                CommandOptionType.SingleValue);

            var diagOption = cmd.Option(
                $"-d|--diag <{LocalizableStrings.CmdPathToLogFile}>",
                LocalizableStrings.CmdPathTologFileDescription,
                CommandOptionType.SingleValue);

            var noBuildtOption = cmd.Option(
                "--no-build",
                LocalizableStrings.CmdNoBuildDescription,
                CommandOptionType.NoValue);

            CommandOption verbosityOption = MSBuildForwardingApp.AddVerbosityOption(cmd);

            cmd.OnExecute(() =>
            {
                var msbuildArgs = new List <string>()
                {
                    "/t:VSTest"
                };

                msbuildArgs.Add("/nologo");

                if (settingOption.HasValue())
                {
                    msbuildArgs.Add($"/p:VSTestSetting={settingOption.Value()}");
                }

                if (listTestsOption.HasValue())
                {
                    msbuildArgs.Add($"/p:VSTestListTests=true");
                }

                if (testCaseFilterOption.HasValue())
                {
                    msbuildArgs.Add($"/p:VSTestTestCaseFilter={testCaseFilterOption.Value()}");
                }

                if (testAdapterPathOption.HasValue())
                {
                    msbuildArgs.Add($"/p:VSTestTestAdapterPath={testAdapterPathOption.Value()}");
                }

                if (loggerOption.HasValue())
                {
                    msbuildArgs.Add($"/p:VSTestLogger={string.Join(";", loggerOption.Values)}");
                }

                if (configurationOption.HasValue())
                {
                    msbuildArgs.Add($"/p:Configuration={configurationOption.Value()}");
                }

                if (frameworkOption.HasValue())
                {
                    msbuildArgs.Add($"/p:TargetFramework={frameworkOption.Value()}");
                }

                if (outputOption.HasValue())
                {
                    msbuildArgs.Add($"/p:OutputPath={outputOption.Value()}");
                }

                if (diagOption.HasValue())
                {
                    msbuildArgs.Add($"/p:VSTestDiag={diagOption.Value()}");
                }

                if (noBuildtOption.HasValue())
                {
                    msbuildArgs.Add($"/p:VSTestNoBuild=true");
                }

                if (verbosityOption.HasValue())
                {
                    msbuildArgs.Add($"/verbosity:{verbosityOption.Value()}");
                }
                else
                {
                    msbuildArgs.Add("/verbosity:quiet");
                }

                string defaultproject = GetSingleTestProjectToRunTestIfNotProvided(argRoot.Value, cmd.RemainingArguments);

                if (!string.IsNullOrEmpty(defaultproject))
                {
                    msbuildArgs.Add(defaultproject);
                }

                if (!string.IsNullOrEmpty(argRoot.Value))
                {
                    msbuildArgs.Add(argRoot.Value);
                }

                // Add remaining arguments that the parser did not understand,
                msbuildArgs.AddRange(cmd.RemainingArguments);

                return(new MSBuildForwardingApp(msbuildArgs).Execute());
            });

            return(cmd.Execute(args));
        }
コード例 #9
0
        public static int Run(string[] args)
        {
            DebugHelper.HandleDebugSwitch(ref args);

            CommandLineApplication cmd = new CommandLineApplication(throwOnUnexpectedArg: false)
            {
                Name        = "restore",
                FullName    = LocalizableStrings.AppFullName,
                Description = LocalizableStrings.AppDescription,
                HandleRemainingArguments  = true,
                ArgumentSeparatorHelpText = HelpMessageStrings.MSBuildAdditionalArgsHelpText
            };

            cmd.HelpOption("-h|--help");

            var argRoot = cmd.Argument(
                $"[{LocalizableStrings.CmdArgument}]",
                LocalizableStrings.CmdArgumentDescription,
                multipleValues: true);

            var sourceOption = cmd.Option(
                $"-s|--source <{LocalizableStrings.CmdSourceOption}>",
                LocalizableStrings.CmdSourceOptionDescription,
                CommandOptionType.MultipleValue);

            var runtimeOption = cmd.Option(
                $"-r|--runtime <{LocalizableStrings.CmdRuntimeOption}>",
                LocalizableStrings.CmdRuntimeOptionDescription,
                CommandOptionType.MultipleValue);

            var packagesOption = cmd.Option(
                $"--packages <{LocalizableStrings.CmdPackagesOption}>",
                LocalizableStrings.CmdPackagesOptionDescription,
                CommandOptionType.SingleValue);

            var disableParallelOption = cmd.Option(
                "--disable-parallel",
                LocalizableStrings.CmdDisableParallelOptionDescription,
                CommandOptionType.NoValue);

            var configFileOption = cmd.Option(
                $"--configfile <{LocalizableStrings.CmdConfigFileOption}>",
                LocalizableStrings.CmdConfigFileOptionDescription,
                CommandOptionType.SingleValue);

            var noCacheOption = cmd.Option(
                "--no-cache",
                LocalizableStrings.CmdNoCacheOptionDescription,
                CommandOptionType.NoValue);

            var ignoreFailedSourcesOption = cmd.Option(
                "--ignore-failed-sources",
                LocalizableStrings.CmdIgnoreFailedSourcesOptionDescription,
                CommandOptionType.NoValue);

            var noDependenciesOption = cmd.Option(
                "--no-dependencies",
                LocalizableStrings.CmdNoDependenciesOptionDescription,
                CommandOptionType.NoValue);

            CommandOption verbosityOption = MSBuildForwardingApp.AddVerbosityOption(cmd);

            cmd.OnExecute(() =>
            {
                var msbuildArgs = new List <string>()
                {
                    "/NoLogo",
                    "/t:Restore",
                    "/ConsoleLoggerParameters:Verbosity=Minimal"
                };

                if (sourceOption.HasValue())
                {
                    msbuildArgs.Add($"/p:RestoreSources={string.Join("%3B", sourceOption.Values)}");
                }

                if (runtimeOption.HasValue())
                {
                    msbuildArgs.Add($"/p:RuntimeIdentifiers={string.Join("%3B", runtimeOption.Values)}");
                }

                if (packagesOption.HasValue())
                {
                    msbuildArgs.Add($"/p:RestorePackagesPath={packagesOption.Value()}");
                }

                if (disableParallelOption.HasValue())
                {
                    msbuildArgs.Add($"/p:RestoreDisableParallel=true");
                }

                if (configFileOption.HasValue())
                {
                    msbuildArgs.Add($"/p:RestoreConfigFile={configFileOption.Value()}");
                }

                if (noCacheOption.HasValue())
                {
                    msbuildArgs.Add($"/p:RestoreNoCache=true");
                }

                if (ignoreFailedSourcesOption.HasValue())
                {
                    msbuildArgs.Add($"/p:RestoreIgnoreFailedSources=true");
                }

                if (noDependenciesOption.HasValue())
                {
                    msbuildArgs.Add($"/p:RestoreRecursive=false");
                }

                if (verbosityOption.HasValue())
                {
                    msbuildArgs.Add($"/verbosity:{verbosityOption.Value()}");
                }

                // Add in arguments
                msbuildArgs.AddRange(argRoot.Values);

                // Add remaining arguments that the parser did not understand
                msbuildArgs.AddRange(cmd.RemainingArguments);

                return(new MSBuildForwardingApp(msbuildArgs).Execute());
            });

            return(cmd.Execute(args));
        }
コード例 #10
0
        public static int Run(string[] args)
        {
            DebugHelper.HandleDebugSwitch(ref args);

            CommandLineApplication cmd = new CommandLineApplication(throwOnUnexpectedArg: false)
            {
                Name                      = "pack",
                FullName                  = "pack",
                Description               = "pack for msbuild",
                AllowArgumentSeparator    = true,
                ArgumentSeparatorHelpText = HelpMessageStrings.MSBuildAdditionalArgsHelpText
            };

            cmd.HelpOption("-h|--help");

            var output = cmd.Option("-o|--output <OUTPUT_DIR>",
                                    "Directory in which to place outputs",
                                    CommandOptionType.SingleValue);
            var noBuild = cmd.Option("--no-build",
                                     "Do not build project before packing",
                                     CommandOptionType.NoValue);
            var includeSymbols = cmd.Option("--include-symbols",
                                            "Include PDBs along with the DLLs in the output folder",
                                            CommandOptionType.NoValue);
            var includeSource = cmd.Option("--include-source",
                                           "Include PDBs and source files. Source files go into the src folder in the resulting nuget package",
                                           CommandOptionType.NoValue);
            var configuration = cmd.Option("-c|--configuration <CONFIGURATION>",
                                           "Configuration under which to build",
                                           CommandOptionType.SingleValue);
            var versionSuffix = cmd.Option("--version-suffix <VERSION_SUFFIX>",
                                           "Defines what `*` should be replaced with in version field in project.json",
                                           CommandOptionType.SingleValue);
            var serviceable = cmd.Option("-s|--serviceable",
                                         "Set the serviceable flag in the package",
                                         CommandOptionType.NoValue);
            var argRoot = cmd.Argument("<PROJECT>",
                                       "The project to pack, defaults to the project file in the current directory. Can be a path to any project file",
                                       multipleValues: true);
            CommandOption verbosityOption = MSBuildForwardingApp.AddVerbosityOption(cmd);

            cmd.OnExecute(() =>
            {
                var msbuildArgs = new List <string>()
                {
                    "/t:pack"
                };

                if (noBuild.HasValue())
                {
                    msbuildArgs.Add($"/p:NoBuild=true");
                }

                if (includeSymbols.HasValue())
                {
                    msbuildArgs.Add($"/p:IncludeSymbols=true");
                }

                if (includeSource.HasValue())
                {
                    msbuildArgs.Add($"/p:IncludeSource=true");
                }

                if (output.HasValue())
                {
                    msbuildArgs.Add($"/p:PackageOutputPath={output.Value()}");
                }

                if (configuration.HasValue())
                {
                    msbuildArgs.Add($"/p:Configuration={configuration.Value()}");
                }

                if (versionSuffix.HasValue())
                {
                    msbuildArgs.Add($"/p:VersionSuffix={versionSuffix.Value()}");
                }

                if (serviceable.HasValue())
                {
                    msbuildArgs.Add($"/p:Serviceable=true");
                }

                if (verbosityOption.HasValue())
                {
                    msbuildArgs.Add($"/verbosity:{verbosityOption.Value()}");
                }

                msbuildArgs.AddRange(argRoot.Values);

                msbuildArgs.AddRange(cmd.RemainingArguments);
                return(new MSBuildForwardingApp(msbuildArgs).Execute());
            });

            return(cmd.Execute(args));
        }
コード例 #11
0
        public static int Run(string[] args)
        {
            DebugHelper.HandleDebugSwitch(ref args);

            CommandLineApplication cmd = new CommandLineApplication(throwOnUnexpectedArg: false)
            {
                Name                      = "pack",
                FullName                  = LocalizableStrings.AppFullName,
                Description               = LocalizableStrings.AppDescription,
                AllowArgumentSeparator    = true,
                ArgumentSeparatorHelpText = HelpMessageStrings.MSBuildAdditionalArgsHelpText
            };

            cmd.HelpOption("-h|--help");

            var output = cmd.Option(
                $"-o|--output <{LocalizableStrings.CmdOutputDir}>",
                LocalizableStrings.CmdOutputDirDescription,
                CommandOptionType.SingleValue);
            var noBuild = cmd.Option(
                "--no-build",
                LocalizableStrings.CmdNoBuildOptionDescription,
                CommandOptionType.NoValue);
            var includeSymbols = cmd.Option(
                "--include-symbols",
                LocalizableStrings.CmdIncludeSymbolsDescription,
                CommandOptionType.NoValue);
            var includeSource = cmd.Option(
                "--include-source",
                LocalizableStrings.CmdIncludeSourceDescription,
                CommandOptionType.NoValue);
            var configuration = cmd.Option(
                $"-c|--configuration <{LocalizableStrings.CmdConfig}>",
                LocalizableStrings.CmdConfigDescription,
                CommandOptionType.SingleValue);
            var versionSuffix = cmd.Option(
                $"--version-suffix <{LocalizableStrings.CmdVersionSuffix}>",
                LocalizableStrings.CmdVersionSuffixDescription,
                CommandOptionType.SingleValue);
            var serviceable = cmd.Option(
                "-s|--serviceable",
                LocalizableStrings.CmdServiceableDescription,
                CommandOptionType.NoValue);
            var argRoot = cmd.Argument(
                $"<{LocalizableStrings.CmdArgumentProject}>",
                LocalizableStrings.CmdArgumentDescription,
                multipleValues: true);
            CommandOption verbosityOption = MSBuildForwardingApp.AddVerbosityOption(cmd);

            cmd.OnExecute(() =>
            {
                var msbuildArgs = new List <string>()
                {
                    "/t:pack"
                };

                if (noBuild.HasValue())
                {
                    msbuildArgs.Add($"/p:NoBuild=true");
                }

                if (includeSymbols.HasValue())
                {
                    msbuildArgs.Add($"/p:IncludeSymbols=true");
                }

                if (includeSource.HasValue())
                {
                    msbuildArgs.Add($"/p:IncludeSource=true");
                }

                if (output.HasValue())
                {
                    msbuildArgs.Add($"/p:PackageOutputPath={output.Value()}");
                }

                if (configuration.HasValue())
                {
                    msbuildArgs.Add($"/p:Configuration={configuration.Value()}");
                }

                if (versionSuffix.HasValue())
                {
                    msbuildArgs.Add($"/p:VersionSuffix={versionSuffix.Value()}");
                }

                if (serviceable.HasValue())
                {
                    msbuildArgs.Add($"/p:Serviceable=true");
                }

                if (verbosityOption.HasValue())
                {
                    msbuildArgs.Add($"/verbosity:{verbosityOption.Value()}");
                }

                msbuildArgs.AddRange(argRoot.Values);

                msbuildArgs.AddRange(cmd.RemainingArguments);
                return(new MSBuildForwardingApp(msbuildArgs).Execute());
            });

            return(cmd.Execute(args));
        }
コード例 #12
0
        public static int Run(string[] args)
        {
            DebugHelper.HandleDebugSwitch(ref args);

            CommandLineApplication cmd = new CommandLineApplication(throwOnUnexpectedArg: false)
            {
                Name                      = "restore",
                FullName                  = "restore",
                Description               = "restore for msbuild",
                AllowArgumentSeparator    = true,
                ArgumentSeparatorHelpText = HelpMessageStrings.MSBuildAdditionalArgsHelpText
            };

            cmd.HelpOption("-h|--help");

            var argRoot = cmd.Argument(
                "[root]",
                "Optional path to a project file or MSBuild arguments.",
                multipleValues: true);

            var sourceOption = cmd.Option(
                "-s|--source <source>",
                "Specifies a NuGet package source to use during the restore.",
                CommandOptionType.MultipleValue);

            var packagesOption = cmd.Option(
                "--packages <packagesDirectory>",
                "Directory to install packages in.",
                CommandOptionType.SingleValue);

            var disableParallelOption = cmd.Option(
                "--disable-parallel",
                "Disables restoring multiple projects in parallel.",
                CommandOptionType.NoValue);

            var configFileOption = cmd.Option(
                "--configfile <file>",
                "The NuGet configuration file to use.",
                CommandOptionType.SingleValue);

            var noCacheOption = cmd.Option(
                "--no-cache",
                "Do not cache packages and http requests.",
                CommandOptionType.NoValue);

            var ignoreFailedSourcesOption = cmd.Option(
                "--ignore-failed-sources",
                "Treat package source failures as warnings.",
                CommandOptionType.NoValue);

            var noDependenciesOption = cmd.Option(
                "--no-dependencies",
                "Set this flag to ignore project to project references and only restore the root project",
                CommandOptionType.NoValue);

            CommandOption verbosityOption = MSBuildForwardingApp.AddVerbosityOption(cmd);

            cmd.OnExecute(() =>
            {
                var msbuildArgs = new List <string>()
                {
                    "/NoLogo",
                    "/t:Restore",
                    "/ConsoleLoggerParameters:Verbosity=Minimal"
                };

                if (sourceOption.HasValue())
                {
                    msbuildArgs.Add($"/p:RestoreSources={string.Join("%3B", sourceOption.Values)}");
                }

                if (packagesOption.HasValue())
                {
                    msbuildArgs.Add($"/p:RestorePackagesPath={packagesOption.Value()}");
                }

                if (disableParallelOption.HasValue())
                {
                    msbuildArgs.Add($"/p:RestoreDisableParallel=true");
                }

                if (configFileOption.HasValue())
                {
                    msbuildArgs.Add($"/p:RestoreConfigFile={configFileOption.Value()}");
                }

                if (noCacheOption.HasValue())
                {
                    msbuildArgs.Add($"/p:RestoreNoCache=true");
                }

                if (ignoreFailedSourcesOption.HasValue())
                {
                    msbuildArgs.Add($"/p:RestoreIgnoreFailedSources=true");
                }

                if (noDependenciesOption.HasValue())
                {
                    msbuildArgs.Add($"/p:RestoreRecursive=false");
                }

                if (verbosityOption.HasValue())
                {
                    msbuildArgs.Add($"/verbosity:{verbosityOption.Value()}");
                }

                // Add in arguments
                msbuildArgs.AddRange(argRoot.Values);

                // Add remaining arguments that the parser did not understand
                msbuildArgs.AddRange(cmd.RemainingArguments);

                return(new MSBuildForwardingApp(msbuildArgs).Execute());
            });

            return(cmd.Execute(args));
        }
コード例 #13
0
        public static int Run(string[] args)
        {
            DebugHelper.HandleDebugSwitch(ref args);

            var app = new CommandLineApplication(throwOnUnexpectedArg: false);

            app.Name                      = "dotnet cache";
            app.FullName                  = LocalizableStrings.AppFullName;
            app.Description               = LocalizableStrings.AppDescription;
            app.AllowArgumentSeparator    = true;
            app.ArgumentSeparatorHelpText = HelpMessageStrings.MSBuildAdditionalArgsHelpText;
            app.HelpOption("-h|--help");

            CommandOption projectArgument = app.Option(
                $"-e|--entries <{LocalizableStrings.ProjectEntries}>", LocalizableStrings.ProjectEntryDescription,
                CommandOptionType.SingleValue);

            CommandOption frameworkOption = app.Option(
                $"-f|--framework <{LocalizableStrings.FrameworkOption}>", LocalizableStrings.FrameworkOptionDescription,
                CommandOptionType.SingleValue);

            CommandOption runtimeOption = app.Option(
                $"-r|--runtime <{LocalizableStrings.RuntimeOption}>", LocalizableStrings.RuntimeOptionDescription,
                CommandOptionType.SingleValue);

            CommandOption outputOption = app.Option(
                $"-o|--output <{LocalizableStrings.OutputOption}>", LocalizableStrings.OutputOptionDescription,
                CommandOptionType.SingleValue);

            CommandOption fxOption = app.Option(
                $"--framework-version <{LocalizableStrings.FrameworkVersionOption}>", LocalizableStrings.FrameworkVersionOptionDescription,
                CommandOptionType.SingleValue);

            CommandOption skipOptimizationOption = app.Option(
                $"--skip-optimization", LocalizableStrings.SkipOptimizationOptionDescription,
                CommandOptionType.NoValue);

            CommandOption workingDir = app.Option(
                $"-w |--working-dir <{LocalizableStrings.IntermediateWorkingDirOption}>", LocalizableStrings.IntermediateWorkingDirOptionDescription,
                CommandOptionType.SingleValue);

            CommandOption preserveWorkingDir = app.Option(
                $"--preserve-working-dir", LocalizableStrings.PreserveIntermediateWorkingDirOptionDescription,
                CommandOptionType.NoValue);

            CommandOption verbosityOption = MSBuildForwardingApp.AddVerbosityOption(app);

            app.OnExecute(() =>
            {
                var cache = new CacheCommand();

                cache.Framework               = frameworkOption.Value();
                cache.Runtime                 = runtimeOption.Value();
                cache.OutputPath              = outputOption.Value();
                cache.FrameworkVersion        = fxOption.Value();
                cache.Verbosity               = verbosityOption.Value();
                cache.SkipOptimization        = skipOptimizationOption.HasValue();
                cache.IntermediateDir         = workingDir.Value();
                cache.PreserveIntermediateDir = preserveWorkingDir.HasValue();
                cache.ExtraMSBuildArguments   = app.RemainingArguments;
                cache.ProjectArgument         = projectArgument.Value();

                return(cache.Execute());
            });

            return(app.Execute(args));
        }
コード例 #14
0
        public static int Run(string[] args)
        {
            DebugHelper.HandleDebugSwitch(ref args);

            CommandLineApplication app = new CommandLineApplication(throwOnUnexpectedArg: false);

            app.Name                      = "dotnet build";
            app.FullName                  = ".NET Builder";
            app.Description               = "Builder for the .NET Platform. Delegates to the MSBuild 'Build' target in the project file.";
            app.AllowArgumentSeparator    = true;
            app.ArgumentSeparatorHelpText = HelpMessageStrings.MSBuildAdditionalArgsHelpText;
            app.HelpOption("-h|--help");

            CommandArgument projectArgument = app.Argument("<PROJECT>",
                                                           "The MSBuild project file to build. If a project file is not specified," +
                                                           " MSBuild searches the current working directory for a file that has a file extension that ends in `proj` and uses that file.");

            CommandOption outputOption    = app.Option("-o|--output <OUTPUT_DIR>", "Directory in which to place outputs", CommandOptionType.SingleValue);
            CommandOption frameworkOption = app.Option("-f|--framework <FRAMEWORK>", "Compile a specific framework", CommandOptionType.SingleValue);
            CommandOption runtimeOption   = app.Option(
                "-r|--runtime <RUNTIME_IDENTIFIER>", "Target runtime to build for. The default is to build a portable application.",
                CommandOptionType.SingleValue);
            CommandOption configurationOption = app.Option("-c|--configuration <CONFIGURATION>", "Configuration under which to build", CommandOptionType.SingleValue);
            CommandOption versionSuffixOption = app.Option("--version-suffix <VERSION_SUFFIX>", "Defines the value for the $(VersionSuffix) property in the project", CommandOptionType.SingleValue);

            CommandOption noIncrementalOption  = app.Option("--no-incremental", "Set this flag to turn off incremental build", CommandOptionType.NoValue);
            CommandOption noDependenciesOption = app.Option("--no-dependencies", "Set this flag to ignore project to project references and only build the root project", CommandOptionType.NoValue);
            CommandOption verbosityOption      = MSBuildForwardingApp.AddVerbosityOption(app);

            app.OnExecute(() =>
            {
                List <string> msbuildArgs = new List <string>();

                if (!string.IsNullOrEmpty(projectArgument.Value))
                {
                    msbuildArgs.Add(projectArgument.Value);
                }

                if (noIncrementalOption.HasValue())
                {
                    msbuildArgs.Add("/t:Rebuild");
                }
                else
                {
                    msbuildArgs.Add("/t:Build");
                }

                if (outputOption.HasValue())
                {
                    msbuildArgs.Add($"/p:OutputPath={outputOption.Value()}");
                }

                if (frameworkOption.HasValue())
                {
                    msbuildArgs.Add($"/p:TargetFramework={frameworkOption.Value()}");
                }

                if (runtimeOption.HasValue())
                {
                    msbuildArgs.Add($"/p:RuntimeIdentifier={runtimeOption.Value()}");
                }

                if (configurationOption.HasValue())
                {
                    msbuildArgs.Add($"/p:Configuration={configurationOption.Value()}");
                }

                if (versionSuffixOption.HasValue())
                {
                    msbuildArgs.Add($"/p:VersionSuffix={versionSuffixOption.Value()}");
                }

                if (noDependenciesOption.HasValue())
                {
                    msbuildArgs.Add("/p:BuildProjectReferences=false");
                }

                if (verbosityOption.HasValue())
                {
                    msbuildArgs.Add($"/verbosity:{verbosityOption.Value()}");
                }

                msbuildArgs.AddRange(app.RemainingArguments);

                return(new MSBuildForwardingApp(msbuildArgs).Execute());
            });

            return(app.Execute(args));
        }