/// <summary> /// Write config.json /// </summary> /// <param name="outputPath">Path of config.json</param> protected virtual void WriteConfigObject(string outputPath) { var pluginDirectories = new List <string>(); var plugins = new List <string>(); var pluginRoot = $"../{Parameters.ProjectName}.Plugins"; if (string.IsNullOrEmpty(Parameters.UseDefaultPlugins)) { // Not use default plugins pluginDirectories.Add(pluginRoot); plugins.Add(Parameters.ProjectName); } else { // Use default plugins var collection = PluginCollection.FromFile(Parameters.UseDefaultPlugins); pluginDirectories.Add(pluginRoot); pluginDirectories.Add(PathUtils.MakeRelativePath( Path.GetDirectoryName(Path.GetDirectoryName(outputPath)), Path.GetDirectoryName(Parameters.UseDefaultPlugins))); plugins.AddRange(collection.PrependPlugins); plugins.Add(Parameters.ProjectName); plugins.AddRange(collection.AppendPlugins); } var json = JsonConvert.SerializeObject(new { ORM = Parameters.ORM, Database = Parameters.Database, ConnectionString = Parameters.ConnectionString, PluginDirectories = pluginDirectories, Plugins = plugins }, Formatting.Indented); Directory.CreateDirectory(Path.GetDirectoryName(outputPath)); File.WriteAllText(outputPath, json, Encoding.UTF8); }