Zrobiłem projekt w C # .NET, w którym mój plik bazy danych jest skoroszytem programu Excel. Ponieważ lokalizacja ciągu połączenia jest zakodowana na stałe w moim kodzie, nie ma problemu z zainstalowaniem go w moim systemie, ale w przypadku innych systemów jest.
Czy istnieje sposób, aby poprosić użytkownika o ustawienie ścieżki po zakończeniu instalacji aplikacji?
Odpowiedzi, które otrzymałem, brzmiały: „Użyj App.Config”… czy ktoś może powiedzieć, co to jest ten plik App.config i jak go używać w moim kontekście?
c#
.net
app-config
nieśmiały
źródło
źródło
Odpowiedzi:
Mówiąc najprościej, app.config jest plikiem XML z wieloma predefiniowanymi sekcjami konfiguracyjnymi i obsługą niestandardowych sekcji konfiguracyjnych. „Sekcja konfiguracji” to fragment kodu XML ze schematem przeznaczonym do przechowywania pewnego rodzaju informacji.
Ustawienia można skonfigurować za pomocą wbudowanych sekcji konfiguracyjnych, takich jak
connectionStrings
lubappSettings
. Możesz dodać własne sekcje konfiguracji niestandardowej; jest to temat zaawansowany, ale bardzo przydatny do tworzenia plików konfiguracyjnych o jednoznacznie określonym typie.Aplikacje internetowe zwykle mają plik web.config, podczas gdy aplikacje GUI / usługi systemu Windows mają plik app.config.
Pliki konfiguracyjne na poziomie aplikacji dziedziczą ustawienia z globalnych plików konfiguracyjnych, np. Machine.config.
Czytanie z App.Config
Parametry połączenia mają wstępnie zdefiniowany schemat, którego można użyć. Zauważ, że ten mały fragment jest w rzeczywistości prawidłowym plikiem app.config (lub web.config):
Po zdefiniowaniu pliku app.config można go odczytać w kodzie za pomocą klasy ConfigurationManager . Nie daj się zastraszyć szczegółowymi przykładami MSDN; to właściwie całkiem proste.
Pisanie do App.Config
Częsta zmiana plików * .config zwykle nie jest dobrym pomysłem, ale wygląda na to, że chcesz przeprowadzić tylko jednorazową konfigurację.
Zobacz: Zmiana parametrów połączenia i ponowne załadowanie
connectionStrings
pliku app.config w czasie wykonywania, który opisuje, jak zaktualizować sekcję pliku * .config w czasie wykonywania.Zwróć uwagę, że idealnie byłoby wykonać takie zmiany konfiguracji za pomocą prostego instalatora.
Lokalizacja App.Config w czasie wykonywania
P : Załóżmy, że ręcznie zmienię część
<value>
pliku app.config, zapiszę go, a następnie zamknę. Kiedy teraz przechodzę do folderu bin i uruchamiam stąd plik .exe, dlaczego nie odzwierciedla on zastosowanych zmian?Odp . : Kiedy kompilujesz aplikację, jej plik app.config jest kopiowany do katalogu bin 1 z nazwą pasującą do twojego exe. Na przykład, jeśli plik exe został nazwany „test.exe”, w katalogu bin powinien znajdować się plik „text.exe.config”. Możesz zmienić konfigurację bez ponownej kompilacji, ale będziesz musiał edytować plik konfiguracyjny, który został utworzony w czasie kompilacji, a nie oryginalny plik app.config.
1: Zwróć uwagę, że pliki web.config nie są przenoszone, ale zamiast tego pozostają w tej samej lokalizacji podczas kompilacji i wdrażania. Jedynym wyjątkiem jest sytuacja, gdy plik web.config jest przekształcany .
.NET Core
Nowe opcje konfiguracji zostały wprowadzone w .NET Core. Wygląda na to, że sposób działania plików * .config nie zmienił się, ale programiści mają swobodę wyboru nowych, bardziej elastycznych paradygmatów konfiguracji.
źródło
Po prostu App.config to
XML
oparty na formacie pliku, który przechowuje konfiguracje poziomu aplikacji .Przykład:
Dostęp do konfiguracji można uzyskać, korzystając
ConfigurationManager
z poniższego fragmentu kodu:Uwaga:
ConfigurationSettings
jest przestarzałą metodą pobierania informacji o konfiguracji.źródło
System.Configuration.dll
Aby korzystać z wyżej wymienionych interfejsów API, musisz się odwołać .System.Configuration.ConfigurationManager.AppSettings["Key"]
jest już łańcuchem, wywołanieToString()
go jest zbędne.Dodam tylko coś, czego brakowało mi we wszystkich odpowiedziach - nawet jeśli wydaje się to głupie i oczywiste, gdy tylko się dowiesz:
Plik musi mieć nazwę „App.config” lub „app.config” i może znajdować się w Twoim projekcie na tym samym poziomie, co np. Program.cs.
Nie wiem, czy inne lokalizacje są możliwe, inne nazwy (jak application.conf, jak sugeruje dokumentacja ODP.net) nie działają dla mnie.
PS. Zacząłem od Visual Studio Code i utworzyłem nowy projekt z „dotnet new”. W tym przypadku nie jest tworzony plik konfiguracyjny, jestem pewien, że istnieją inne przypadki. PPS. Może być konieczne dodanie pakietu NuGet, aby móc odczytać plik konfiguracyjny, w przypadku .NET CORE będzie to „dotnet add pakiet System.Configuration.ConfigurationManager --version 4.5.0”
źródło
/resources
App.Config to plik XML, który jest używany jako plik konfiguracyjny aplikacji. Innymi słowy, przechowujesz w nim dowolne ustawienia, które możesz chcieć zmienić bez konieczności zmiany kodu (i ponownej kompilacji). Jest często używany do przechowywania parametrów połączenia.
Zobacz ten artykuł MSDN, aby dowiedzieć się, jak to zrobić.
źródło
Dostęp do kluczy można uzyskać w aplikacji. Konfiguruj za pomocą:
Spójrz na ten wątek
źródło
Dodam jeszcze jeden punkt
Używając app.config, w jaki sposób możesz kontrolować dostęp do aplikacji, chcesz zastosować określoną zmianę w całej aplikacji, użyj pliku konfiguracyjnego aplikacji i możesz uzyskać dostęp do ustawień, takich jak poniżej ConfigurationSettings.AppSettings ["Key"]
źródło