static Dictionary <string, string> GetBuildConfiguration() { var buildConfigurationFile = GetBuildConfigurationFile(); if (buildConfigurationFile.Exists) { return(CoinConfigurationSerializer.Deserialize(File.ReadAllText(buildConfigurationFile.FullName))); } return(new Dictionary <string, string>()); }
/// <summary> /// 合并配置文件 /// </summary> /// <param name="option"></param> /// <param name="configuration"></param> public static FileConfigurationRepo MergeConfiguration(InitOption option, ConfigurationEnum configuration) { // 放在机器的配置 var globalConfigurationFile = GetGlobalConfigurationFile(); Dictionary <string, string> machineConfiguration = new Dictionary <string, string>(); if (!globalConfigurationFile.Exists) { Log.Debug("没有找到机器配置" + globalConfigurationFile.FullName); // 不存在机器配置 } else { // 规则是如果当前存在的,那么就不从机器获取 machineConfiguration = CoinConfigurationSerializer.Deserialize(File.ReadAllText(globalConfigurationFile.FullName)); } var currentConfiguration = GetBuildConfiguration(); foreach (var(key, value) in machineConfiguration) { if (!currentConfiguration.ContainsKey(key)) { currentConfiguration[key] = value; } } SetLogLevel(configuration, currentConfiguration); // 下面代码只是让配置文件里面可以告诉小伙伴这个文件是做什么 currentConfiguration["AAA须知"] = "此文件为构建过程多个命令共享信息使用,请不要加入代码仓库"; // 序列化写入 var fileConfiguration = ConfigurationHelper.GetCurrentConfiguration(); IConfigurationRepo configurationRepo = fileConfiguration; foreach (var(key, value) in currentConfiguration) { configurationRepo.SetValue(key, value); } return(fileConfiguration); }