C #

Automatiškai nustatyti „appsettings.json“ kūrėjų ir išleidimo aplinkoms „asp.net“ šerdyje?

Automatically Set Appsettings



Sprendimas:

Pridėjau darbo aplinkos ekrano kopijų, nes tai man kainavo kelias valandas tyrimų ir plėtros.

  1. Pirmiausia pridėkite raktą prie savofailą launch.json.



    Žiūrėkite žemiau pateiktą ekrano kopiją, kurią pridėjau Vystymasis kaip mano aplinka.



    Aplinkos kintamojo deklaracija paleisties.json



  2. Tada savo projekte sukurkite naująprogramų nustatymai. {aplinka} .json failas, kuriame yra aplinkos pavadinimas.

    Šioje ekrano kopijoje ieškokite dviejų skirtingų failų pavadinimais:

    • programų nustatymai. Plėtra. Json
    • appSetting.json


    Programų nustatymų JSON failų projekto vaizdas



  3. Ir galiausiai sukonfigūruokite jį pagal savoPradėkite klasę taip:

    public Startup (IHostingEnvironment env) {var builder = new ConfigurationBuilder () .SetBasePath (env.ContentRootPath) .AddJsonFile ('appsettings.json', pasirenkama: false, reloadOnChange: tiesa) .AddJsonFile ($ 'appsettings. .json ', neprivaloma: true) .AddEnvironmentVariables (); Konfigūracija = builder.Build (); }
  4. Ir pagaliau galite jį paleisti iš komandinės eilutės taip:

    „dotnet run“ -aplinkos „plėtra“

    kur „Vystymasis“ yra mano aplinkos pavadinimas.


Naujinimas .NET Core 3.0+

  1. Tu gali naudoti„CreateDefaultBuilder“, kuris automatiškai sukurs ir perduos konfigūracijos objektą jūsų paleisties klasei:

    WebHost.CreateDefaultBuilder (args) .UseStartup ();
    public class Startup {public Startup (IConfiguration configuration) // automatiškai įvedamas {Configuration = configuration; } public IConfiguration Configuration {get; } / * ... * /}
  2. „CreateDefaultBuilder“ automatiškai įtraukia atitinkamąprogramėlių nustatymai. Aplinka .json failą, todėl kiekvienai aplinkai pridėkite atskirą programų nustatymų failą:

    appsettings.env.json

  3. Tada nustatykiteASPNETCORE_ENVIRONMENT aplinkos kintamasis paleidžiant / derinant

Kaip nustatyti aplinkos kintamuosius

Priklausomai nuo jūsų IDE, yra keletas vietų, kuriose dotnet projektai tradiciškai ieško aplinkos kintamųjų:

  • Dėl „Visual Studio“ eikite į Projektas> Ypatybės> Derinimas> Aplinkos kintamieji:

    „Visual Studio“ - aplinkos kintamieji

  • Dėl „Visual Studio“ kodas , Redaguoti.vscode/launch.json>env:

    Visual Studio Code>Paleiskite aplinką “></p></li> <li><p>Naudojant <strong>Paleiskite nustatymus</strong> , Redaguoti<code>Ypatybės/launchSettings.json><code>aplinkos įvairovė:</p> <p> <img src=

    Kurį taip pat galima pasirinkti iš „Visual Studio“ įrankių juostos

    Paleiskite nustatymų išskleidžiamąjį meniu

  • Naudojant dotnet CLI , naudokite atitinkamą sintaksę nustatydami aplinkos kintamuosius pagal savo OS

    Pastaba : Kai programa paleidžiama paleidus taškinį tinklą,launchSettings.json yra skaitomas, jei yra, irenvironmentVariables nustatymai launchSettings.json nepaiso aplinkos kintamųjų.

KaipHost.CreateDefaultBuilder darbas?

Pridėta .NET Core 3.0Host.CreateDefaultBuilder pagal platformos plėtinius, kurie suteiks numatytąjį inicijavimąICkonfigūracija, kuri suteikia numatytąją programos konfigūraciją tokia tvarka:

  1. appsettings.json naudojant JSON konfigūracijos teikėją.
  2. programėlių nustatymai. Aplinka .json naudojant JSON konfigūracijos teikėją. Pavyzdžiui:
    • programėlių nustatymai. Gamyba .json arba
    • programėlių nustatymai. Vystymasis .json
  3. Programos paslaptys, kai programa veikia kūrimo aplinkoje.
  4. Aplinkos kintamieji naudojant aplinkos kintamųjų konfigūracijos teikėją.
  5. Komandinės eilutės argumentai naudojant komandų eilutės konfigūracijos teikėją.

Tolesnis skaitymas - MS dokumentai

  • Programos paleidimas „ASP.NET Core“
  • Konfigūracija „ASP.NET Core“
  • „ASP.NET Core“ naudokite kelias aplinkas

„ASP.NET Core“ verčiau naudokite aplinkos kintamuosius, o ne sukurkite tinkamos appsettings.json konfigūracijos

  1. Dešiniuoju pelės mygtuku spustelėkite savo projektą> Ypatybės> Derinimas> Aplinkos kintamieji

    aplinkos įvairovė

  2. „ASP.NET Core“ naudos atitinkamą failą appsettings.json:

    programų nustatymų failų pavyzdys sprendimų naršyklėje

  3. Dabar tą aplinkos kintamąjį galite naudoti taip:

    viešas paleidimas („IHostingEnvironment env“) {var builder = new ConfigurationBuilder (). .json ', neprivaloma: true) .AddEnvironmentVariables (); Konfigūracija = builder.Build (); }

Pastaba : Jei naudosite @Dmitry atsakymą, galite susidurti su problemomis, pvz. kada nepaisydami „Azure“ reikšmių appsettings.json.