private static IConfigurationBuilder AddFileConfiguration(BuildContext buildContext, IConfigurationBuilder builder)
        {
            //todo: use IBuildContext
            var startupConfiguration = buildContext.StartupConfiguration;

            var configurationPath    = startupConfiguration.ConfigurationPath;
            var configurationProfile = startupConfiguration.Profile;

            if (configurationPath != null)
            {
                // Базовый путь для чтения конфигураций
                var configurationBasePath = Path.IsPathRooted(configurationPath)
                    ? configurationPath
                    : Path.Combine(AppDomain.CurrentDomain.BaseDirectory, configurationPath);

                if (!Directory.Exists(configurationBasePath))
                {
                    throw new Exception($"ConfigurationBasePath ${configurationBasePath} doesn't exists");
                }

                buildContext.AddBuildInfo("ConfigurationBasePath", configurationBasePath);

                // Добавляем файлы из корня конфигурации, переопределяем конфигурацию профильными конфигами
                builder = builder.AddConfigurationFiles(configurationBasePath);

                if (!string.IsNullOrEmpty(configurationProfile))
                {
                    var dirs = configurationProfile.PathNormalize().Split(Path.DirectorySeparatorChar, '.');

                    var    cumulativePath   = configurationBasePath.PathNormalize();
                    string profileDirectory = string.Empty;
                    foreach (var dir in dirs)
                    {
                        // Путь к профильной конфигурации
                        var subProfileDirectory = Path.Combine(cumulativePath, dir);
                        cumulativePath = subProfileDirectory;

                        if (Directory.Exists(subProfileDirectory))
                        {
                            profileDirectory = subProfileDirectory;

                            // Переопределяем конфигурацию профильными конфигами
                            builder = builder.AddConfigurationFiles(subProfileDirectory);
                        }
                    }

                    buildContext.AddBuildInfo("ConfigurationProfileDirectory", profileDirectory);
                }
            }
            return(builder);
        }