Dzień dobry, mam utworzone dwa profile w launchsettings.json
"Dev": {
"commandName": "Project",
"launchBrowser": false,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT ": "development"
},
"dotnetRunMessages": true,
"applicationUrl": "http://192.168.1.4:5001"
},
"Prod": {
"commandName": "Project",
"launchBrowser": false,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT ": "production"
},
"dotnetRunMessages": true,
"applicationUrl": "http://192.168.1.4:5001"
},
oraz dwa pliki appsettings.development.json i appsettings.production.json
Teraz gdy uruchamiam program w trybie debugowania za pomocą profilu ,,Dev" powinien załadować mi plik appsettings.development.json, a on pomimo tego ładuje mi production :(
info: Microsoft.Hosting.Lifetime[14]
Now listening on: http://192.168.1.4:5001
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Production
info: Microsoft.Hosting.Lifetime[0]
z powyższej informacji widzę że przyczyną tej sytuacji może być to że ładuje on nazwę zmiennej Production. Co ciekawe w samym projekcie nie widzę nigdzie wpisu, gdzie miałbym nazwę zmiennej zaczynającej się z wielkiej litery :(
Poniżej przesyłam jeszcze dodatkowe informacje
Program.cs
using Blazored.SessionStorage;
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.Authorization;
using Microsoft.AspNetCore.Components.Web;
using MudBlazor.Services;
using Rejestr_Wylegów_NET.Models;
using Rejestr_Wylegów_NET.Services;
using System.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.AspNetCore.Hosting.StaticWebAssets;
using Microsoft.AspNetCore.Authentication.Cookies;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using Microsoft.AspNetCore.Localization;
using System.Globalization;
using System.Reflection;
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting.Server;
namespace Rejestr_Wylegów_NET
{
public static class WebApplicationBuilder
{
public static IHostBuilder ConfigureAppSettings(this IHostBuilder host)
{
var enviroment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
host.ConfigureAppConfiguration((ctx, builder) =>
{
builder.AddJsonFile("appsettings.json", false, true);
builder.AddJsonFile($"appsettings.{enviroment}.json", true, true);
builder.AddEnvironmentVariables();
});
return host;
}
}
internal class Program
{
private static void Main(string[] args)
{
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddRazorPages();
builder.Services.AddMudServices();
builder.Services.AddHttpClient();
builder.WebHost.UseWebRoot("wwwroot").UseStaticWebAssets();
builder.Services.AddSingleton<DatabaseService>();
builder.Services.AddBlazoredSessionStorage();
builder.Services.AddSingleton<UserInfo>();
builder.Services.AddScoped<AuthenticationStateProvider, SimpleAuthenticationStateProvider>();
builder.Services.AddServerSideBlazor();
builder.Services.AddAuthentication();
builder.Services.AddMudServices(config =>
{
config.SnackbarConfiguration.PreventDuplicates = false;
config.SnackbarConfiguration.NewestOnTop = false;
config.SnackbarConfiguration.ShowCloseIcon = true;
config.SnackbarConfiguration.VisibleStateDuration = 20000;
config.SnackbarConfiguration.HideTransitionDuration = 500;
config.SnackbarConfiguration.ShowTransitionDuration = 500;
});
builder.Host.ConfigureAppSettings();
var app = builder.Build();
var culture = new CultureInfo("en-US");
culture.DateTimeFormat.ShortDatePattern = "yyyy-MM-dd";
var supportedCultures = new List<CultureInfo> { culture };
app.UseRequestLocalization(new RequestLocalizationOptions
{
DefaultRequestCulture = new RequestCulture(culture, culture),
SupportedCultures = supportedCultures,
SupportedUICultures = supportedCultures
});
app.UseStaticFiles();
app.UseRouting();
app.MapBlazorHub();
app.MapFallbackToPage("/_Host");
app.Run();
}
}
}
Project.csproj
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<RootNamespace>Rejestr_Wylegów_NET</RootNamespace>
<FileVersion>1.0</FileVersion>
<AssemblyVersion>1.0.0.15</AssemblyVersion>
</PropertyGroup>
<ItemGroup>
<Content Remove="Pages\logowanie\OknoLogowania.razor" />
</ItemGroup>
<ItemGroup>
<None Include="wwwroot\Grafika\kurczak.png" />
<None Include="wwwroot\Grafika\pic_raport.png" />
</ItemGroup>
<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
<EnvironmentName>Development</EnvironmentName>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Blazored.SessionStorage" Version="2.3.0" />
<PackageReference Include="Dapper" Version="2.0.123" />
<PackageReference Include="FluentValidation.AspNetCore" Version="11.3.0" />
<PackageReference Include="itext7" Version="8.0.0" />
<PackageReference Include="itext7.bouncy-castle-adapter" Version="8.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Components.Authorization" Version="6.0.18" />
<PackageReference Include="Microsoft.NETCore.App" Version="2.2.8" />
<PackageReference Include="MudBlazor" Version="6.8.0" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="Npgsql" Version="7.0.2" />
</ItemGroup>
<ItemGroup>
<Folder Include="Layout\" />
<Folder Include="Properties\PublishProfiles\" />
<Folder Include="wwwroot\pictures\" />
</ItemGroup>
<ItemGroup>
<Compile Update="Properties\Resources.Designer.cs">
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<Content Update="appsettings.production.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Update="appsettings.development.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Update="appsettings.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Update="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
</Project>
Dodam również że w samym systemie Windows nie posiadam zmiennej użytkownika jak i systemowej ASPNETCORE_ENVIRONMENT, mam ją tylko w samym środowisku Visual Studio we wcześniej wspomnianym profilu.