diff --git a/.gitignore b/.gitignore index f3f48c5963..c0347428f2 100644 --- a/.gitignore +++ b/.gitignore @@ -315,3 +315,6 @@ tempkey.jwk # ABP Analyzing files *.abppkg.analyze.json + +# appsettings.secrets.json +appsettings.secrets.json \ No newline at end of file diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/CreateAppSettingsSecretsStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/CreateAppSettingsSecretsStep.cs index e8a8be959e..fd600e2c5e 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/CreateAppSettingsSecretsStep.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/CreateAppSettingsSecretsStep.cs @@ -8,15 +8,14 @@ namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps { private const string FileName = "appsettings.secrets.json"; private const string AppSettingsFileName = "appsettings.json"; + private const string AppSettingsPlaceholder = ""; public override void Execute(ProjectBuildContext context) { var appSettingsFiles = context.Files .Where(x => x.Name.EndsWith(AppSettingsFileName) && - NotTestProject(x.Name) && - NotBlazorWasmProject(x.Name) && - NotMigratorProject(x.Name)) + NotBlazorWasmProject(x.Name)) .ToList(); var content = context.Template.IsPro() @@ -30,11 +29,13 @@ namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps content.GetBytes(), false)); } - } - private static bool NotTestProject(string fileName) - { - return !fileName.StartsWith("/aspnet-core/test"); + var projectFiles = context.Files.Where(x => x.Content.Contains(AppSettingsPlaceholder)).ToList(); + + foreach (var projectFile in projectFiles) + { + projectFile.SetContent(ReplaceAppSettingsSecretsPlaceholder(projectFile.Content)); + } } private static bool NotBlazorWasmProject(string fileName) @@ -42,9 +43,14 @@ namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps return !fileName.Contains("Blazor/wwwroot") && !fileName.Contains("Blazor.Host/wwwroot"); } - public static bool NotMigratorProject(string fileName) + private static string ReplaceAppSettingsSecretsPlaceholder(string content) { - return !fileName.Contains("DbMigrator"); + var replaceContent = $"{Environment.NewLine}" + + $" {Environment.NewLine}" + + $" PreserveNewest{Environment.NewLine}" + + $" Always{Environment.NewLine}" + + " "; + return content.Replace(AppSettingsPlaceholder, replaceContent); } } } diff --git a/templates/app/aspnet-core/.gitignore b/templates/app/aspnet-core/.gitignore index c412a346fc..726086cb40 100644 --- a/templates/app/aspnet-core/.gitignore +++ b/templates/app/aspnet-core/.gitignore @@ -259,5 +259,4 @@ src/MyCompanyName.MyProjectName.HttpApi.Host/Logs/* src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/Logs/* src/MyCompanyName.MyProjectName.DbMigrator/Logs/* src/MyCompanyName.MyProjectName.Blazor.Server/Logs/* -src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/Logs/* -appsettings.secrets.json \ No newline at end of file +src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/Logs/* \ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/DbMigratorHostedService.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/DbMigratorHostedService.cs index 89b12bcc03..08a58a9899 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/DbMigratorHostedService.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/DbMigratorHostedService.cs @@ -1,5 +1,6 @@ using System.Threading; using System.Threading.Tasks; +using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using MyCompanyName.MyProjectName.Data; @@ -11,16 +12,19 @@ namespace MyCompanyName.MyProjectName.DbMigrator public class DbMigratorHostedService : IHostedService { private readonly IHostApplicationLifetime _hostApplicationLifetime; + private readonly IConfiguration _configuration; - public DbMigratorHostedService(IHostApplicationLifetime hostApplicationLifetime) + public DbMigratorHostedService(IHostApplicationLifetime hostApplicationLifetime, IConfiguration configuration) { _hostApplicationLifetime = hostApplicationLifetime; + _configuration = configuration; } public async Task StartAsync(CancellationToken cancellationToken) { using (var application = AbpApplicationFactory.Create(options => { + options.Services.ReplaceConfiguration(_configuration); options.UseAutofac(); options.Services.AddLogging(c => c.AddSerilog()); })) diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyCompanyName.MyProjectName.DbMigrator.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyCompanyName.MyProjectName.DbMigrator.csproj index 471cab6cda..9a0ffd986a 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyCompanyName.MyProjectName.DbMigrator.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyCompanyName.MyProjectName.DbMigrator.csproj @@ -9,13 +9,11 @@ - - - PreserveNewest Always + @@ -30,7 +28,7 @@ - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/Program.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/Program.cs index 85ea0e1111..0bc45f3f34 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/Program.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/Program.cs @@ -1,5 +1,6 @@ using System.IO; using System.Threading.Tasks; +using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; @@ -31,6 +32,10 @@ namespace MyCompanyName.MyProjectName.DbMigrator public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) + .ConfigureAppConfiguration(build => + { + build.AddJsonFile("appsettings.secrets.json", optional: true); + }) .ConfigureLogging((context, logging) => logging.ClearProviders()) .ConfigureServices((hostContext, services) => { diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs index ae929ced30..d16fb65f9e 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs @@ -1,6 +1,7 @@ using Microsoft.Extensions.Hosting; using System.Threading; using System.Threading.Tasks; +using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Volo.Abp; @@ -8,9 +9,19 @@ namespace MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp { public class ConsoleTestAppHostedService : IHostedService { + private readonly IConfiguration _configuration; + + public ConsoleTestAppHostedService(IConfiguration configuration) + { + _configuration = configuration; + } + public async Task StartAsync(CancellationToken cancellationToken) { - using (var application = AbpApplicationFactory.Create()) + using (var application = AbpApplicationFactory.Create(options => + { + options.Services.ReplaceConfiguration(_configuration); + })) { application.Initialize(); diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.csproj b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.csproj index e78ce77d08..83d96c2429 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.csproj +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.csproj @@ -7,13 +7,11 @@ - - - PreserveNewest Always + diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/Program.cs b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/Program.cs index 1e24d8a349..e296ed9a11 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/Program.cs +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/Program.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; @@ -13,6 +14,10 @@ namespace MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) + .ConfigureAppConfiguration(build => + { + build.AddJsonFile("appsettings.secrets.json", optional: true); + }) .ConfigureServices((hostContext, services) => { services.AddHostedService(); diff --git a/templates/module/aspnet-core/.gitignore b/templates/module/aspnet-core/.gitignore index 9a86ee0025..aaadbff002 100644 --- a/templates/module/aspnet-core/.gitignore +++ b/templates/module/aspnet-core/.gitignore @@ -256,5 +256,4 @@ host/MyCompanyName.MyProjectName.IdentityServer/Logs/logs.txt host/MyCompanyName.MyProjectName.HttpApi.Host/Logs/logs.txt host/MyCompanyName.MyProjectName.Web.Host/Logs/logs.txt host/MyCompanyName.MyProjectName.Web.Unified/Logs/logs.txt -host/MyCompanyName.MyProjectName.Blazor.Server.Host/Logs/logs.txt -appsettings.secrets.json \ No newline at end of file +host/MyCompanyName.MyProjectName.Blazor.Server.Host/Logs/logs.txt \ No newline at end of file diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs index 1ea99ce263..68c4daec56 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs @@ -1,6 +1,7 @@ using Microsoft.Extensions.Hosting; using System.Threading; using System.Threading.Tasks; +using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Volo.Abp; @@ -8,9 +9,19 @@ namespace MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp { public class ConsoleTestAppHostedService : IHostedService { + private readonly IConfiguration _configuration; + + public ConsoleTestAppHostedService(IConfiguration configuration) + { + _configuration = configuration; + } + public async Task StartAsync(CancellationToken cancellationToken) { - using (var application = AbpApplicationFactory.Create()) + using (var application = AbpApplicationFactory.Create(options=> + { + options.Services.ReplaceConfiguration(_configuration); + })) { application.Initialize(); diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.csproj b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.csproj index ab46bde28b..5ebe04513a 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.csproj +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.csproj @@ -17,6 +17,7 @@ PreserveNewest Always + diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/Program.cs b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/Program.cs index 1e24d8a349..e296ed9a11 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/Program.cs +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/Program.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; @@ -13,6 +14,10 @@ namespace MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) + .ConfigureAppConfiguration(build => + { + build.AddJsonFile("appsettings.secrets.json", optional: true); + }) .ConfigureServices((hostContext, services) => { services.AddHostedService();