예제 #1
0
        static void Main(string[] args)
        {
            var appConfigurator        = AppConfigurator.GetAppConfigurator();
            var appConfiguratorDefault = appConfigurator.Default;

            var(ownerCommand, runningCommand) = SubCommandParser.ParseCommandlineValue(args);

            if (runningCommand.Count == 0)
            {
                return;
            }

            // 其中的 OwnerCommand 先忽略
            // 判断 runningCommand 是否存在需要转换的参数
            var actualCommandline = CommandlineEngine.FillCommandline(runningCommand.ToArray(), appConfiguratorDefault);

            var commandlineArgString = new StringBuilder();

            for (var i = 1; i < actualCommandline.Length; i++)
            {
                var arg = actualCommandline[i];
                Console.WriteLine($"[{i}] = {arg}");
                commandlineArgString.Append(ProcessCommand.ToArgumentPath(arg));
                commandlineArgString.Append(' ');
            }

            var arguments = commandlineArgString.ToString();

            Console.WriteLine($"Command = {actualCommandline[0]} {arguments}");
            var(success, output) = ProcessCommand.ExecuteCommand(actualCommandline[0], arguments);
            Console.WriteLine(output);
        }
        public virtual void Compile()
        {
            var slnFile = CompileConfiguration.SlnPath;

            slnFile = ProcessCommand.ToArgumentPath(slnFile);
            DotNetBuild($" {slnFile} -c release");
        }
        protected (bool success, string output) DotNetBuild(string command = "")
        {
            if (string.IsNullOrEmpty(command))
            {
                command = $" {ProcessCommand.ToArgumentPath(CompileConfiguration.SlnPath)}";
            }

            (bool success, string output) = ExecuteProcessCommand("dotnet", $"build {command}");
            return(success, output);
        }
예제 #4
0
        static void Main(string[] args)
        {
            var appConfigurator      = AppConfigurator.GetAppConfigurator();
            var compileConfiguration = appConfigurator.Of <CompileConfiguration>();

            // 用于替换的列表
            var replaceDictionary = new Dictionary <string, string>()
            {
                { "$(AppVersion)", compileConfiguration.AppVersion }
            };

            // 替换一些变量,然后原原本本传入到 dotnet 命令里面
            var argsString = new StringBuilder();

            foreach (var arg in args)
            {
                var temp = arg;
                if (replaceDictionary.TryGetValue(temp, out var replaceValue))
                {
                    temp = replaceValue;
                }

                temp = ProcessCommand.ToArgumentPath(temp);

                argsString.Append(temp);
                argsString.Append(' ');
            }

            Log.Info($"dotnet {argsString}");
            var(success, output) = ProcessCommand.ExecuteCommand("dotnet", argsString.ToString());
            if (success)
            {
                Log.Info(output);
            }
            else
            {
                Log.Error(output);
            }
        }