Atlikau projektą C#.NET, kuriame mano duomenų bazės failas yra "Excel" darbaknygė. Kadangi ryšio eilutės vieta yra kietai užkoduota mano koduotėje, ją įdiegti mano sistemoje nėra jokių problemų, tačiau kitose sistemose jų kyla.
Ar yra būdas pasiūlyti naudotojui vieną kartą nustatyti kelią, kai baigiama diegti programa?
Atsakymai, kuriuos gavau, buvo "Use App.Config"... Ar kas nors gali pasakyti, kas yra tas App.config ir kaip jį naudoti mano kontekste čia?
Paprasčiausiai app.config yra XML failas su daugybe iš anksto nustatytų konfigūracijos skirsnių ir pasirinktinių konfigūracijos skirsnių palaikymu. Konfigūracijos skirsnis yra XML fragmentas su schema, skirta tam tikrai informacijai saugoti.
Nustatymus galima konfigūruoti naudojant integruotus konfigūracijos skyrius, tokius kaip connectionStrings
arba appSettings
. Galite pridėti savo pasirinktinius konfigūracijos skyrius; tai pažengusi tema, bet labai naudinga kuriant stipriai tipizuotus konfigūracijos failus.
Interneto programose paprastai yra web.config, o "Windows" grafinės sąsajos / paslaugų programose - app.config failas.
Programos lygmens konfigūracijos failai paveldi nustatymus iš visuotinių konfigūracijos failų, pvz., machine.config.
Jungčių eilutės turi iš anksto nustatytą schemą, kurią galite naudoti. Atkreipkite dėmesį, kad ši nedidelė ištrauka iš tikrųjų yra galiojantis app.config (arba web.config) failas:
<?xml version="1.0"?>
<configuration>
<connectionStrings>
<add name="MyKey"
connectionString="Data Source=localhost;Initial Catalog=ABC;"
providerName="System.Data.SqlClient"/>
</connectionStrings>
</configuration>
Apibrėžę savo app.config, galite jį perskaityti kodu naudodami ConfigurationManager klasę. Neišsigąskite daugžodžių MSDN pavyzdžių; iš tikrųjų tai gana paprasta.
string connectionString = ConfigurationManager.ConnectionStrings["MyKey"].ConnectionString;
Dažnai keisti *.config failus paprastai nėra gera idėja, tačiau panašu, kad norite atlikti tik vienkartinį nustatymą.
Žr. https://stackoverflow.com/q/502411/453277, kuriame aprašyta, kaip paleidimo metu atnaujinti *.config failo connectionStrings
skirsnį.
Atkreipkite dėmesį, kad idealiu atveju tokius konfigūracijos pakeitimus turėtumėte atlikti iš paprastos diegimo programos.
*Q: Tarkime, rankiniu būdu pakeičiu tam tikrą <reikšmę>
app.config, ją išsaugau ir uždarom. Kodėl dabar, kai einu į savo šiukšlių aplanką ir iš jo paleidžiu .exe failą, jame neatsispindi atlikti pakeitimai?
A: Kai kompiliuojate programą, jos app.config nukopijuojamas į bin katalogą1 su pavadinimu, atitinkančiu jūsų exe. Pavyzdžiui, jei jūsų exe buvo pavadinta "test.exe", jūsų bin kataloge turėtų būti "text.exe.config". Konfigūraciją galite pakeisti nekompiliavę iš naujo, tačiau jums reikės redaguoti konfigūracijos failą, kuris buvo sukurtas kompiliavimo metu, o ne originalų app.config.
1: Atkreipkite dėmesį, kad web.config failai nėra perkeliami, o lieka toje pačioje vietoje kompiliavimo ir diegimo metu. Viena iš išimčių yra tada, kai web.config yra transformuotas.
Su ".NET Core" įdiegtos naujos konfigūracijos parinktys. Atrodo, kad *.config failų veikimo būdas nepasikeitė, tačiau kūrėjai gali laisvai rinktis naujas, lankstesnes konfigūravimo paradigmas.
App.Config yra XML failas, naudojamas kaip jūsų programos konfigūracijos failas. Kitaip tariant, jame saugomi visi nustatymai, kuriuos norite pakeisti nekeisdami kodo (ir nekompiluodami iš naujo). Jis dažnai naudojamas ryšio eilutėms saugoti.
Kaip tai padaryti, žr. šiame MSDN straipsnyje.
Raktus, esančius App.Config, galite pasiekti naudodami:
ConfigurationSettings.AppSettings["KeyName"]
Peržiūrėkite šią giją