diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ConnectionStringChangeStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ConnectionStringChangeStep.cs index ba42500007..d12bc45866 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ConnectionStringChangeStep.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ConnectionStringChangeStep.cs @@ -1,7 +1,9 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Text.RegularExpressions; using Newtonsoft.Json; +using Newtonsoft.Json.Linq; using Volo.Abp.Cli.ProjectBuilding.Files; namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps @@ -10,31 +12,24 @@ namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps { public override void Execute(ProjectBuildContext context) { - var newConnectionString = context.BuildArgs.ConnectionString; + var newConnectionString = "\"Default\": \"" + context.BuildArgs.ConnectionString + "\""; var appSettingsJsonFiles = context.Files.Where(f => f.Name.EndsWith("appsettings.json", StringComparison.OrdinalIgnoreCase)); foreach (var appSettingsJson in appSettingsJsonFiles) { - var appSettingsObject = JsonConvert.DeserializeObject(appSettingsJson.Content); - var oldConnectionString = appSettingsObject.ConnectionStrings.Default; - appSettingsJson.ReplaceText(oldConnectionString, newConnectionString); - } - } - - public class ConnectionStringModel - { - public string Default { get; set; } - } - - public class AppSettingsConnectionStringModel - { - public ConnectionStringModel ConnectionStrings { get; set; } + try + { + var jsonObject = JObject.Parse(appSettingsJson.Content); + var defaultConnectionString = ((Newtonsoft.Json.Linq.JContainer)jsonObject["ConnectionStrings"]).First.ToString(); - public string GetDefaultConnectionString() - { - return ConnectionStrings?.Default; + appSettingsJson.ReplaceText(defaultConnectionString, newConnectionString); + } + catch (Exception ex) + { + Console.WriteLine("Cannot change the connection string in " + appSettingsJson.Name + ". Error: " + ex.Message); + } } } }