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); }
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); } }