Ich habe ein Projekt in C # .NET durchgeführt, bei dem meine Datenbankdatei eine Excel-Arbeitsmappe ist. Da der Speicherort der Verbindungszeichenfolge in meiner Codierung fest codiert ist, gibt es kein Problem für die Installation in meinem System, für andere Systeme jedoch.
Gibt es eine Möglichkeit, den Benutzer aufzufordern, nach Abschluss der Einrichtung der Anwendung einmal einen Pfad festzulegen?
Die Antworten, die ich erhielt, waren "App.Config verwenden" ... kann jemand sagen, was diese App.config ist und wie ich sie in meinem Kontext hier verwenden kann?
c#
.net
app-config
Shyam
quelle
quelle
Antworten:
Im einfachsten Fall ist die app.config eine XML-Datei mit vielen vordefinierten Konfigurationsabschnitten und Unterstützung für benutzerdefinierte Konfigurationsabschnitte. Ein "Konfigurationsabschnitt" ist ein XML-Ausschnitt mit einem Schema, in dem Informationen gespeichert werden sollen.
Einstellungen können mithilfe integrierter Konfigurationsabschnitte wie
connectionStrings
oder konfiguriert werdenappSettings
. Sie können Ihre eigenen benutzerdefinierten Konfigurationsabschnitte hinzufügen. Dies ist ein fortgeschrittenes Thema, aber sehr leistungsfähig zum Erstellen stark typisierter Konfigurationsdateien.Webanwendungen haben normalerweise eine web.config, während Windows-GUI- / Dienstanwendungen eine app.config-Datei haben.
Konfigurationsdateien auf Anwendungsebene erben Einstellungen von globalen Konfigurationsdateien, z. B. der Datei machine.config.
Lesen aus der App.Config
Verbindungszeichenfolgen haben ein vordefiniertes Schema, das Sie verwenden können. Beachten Sie, dass dieses kleine Snippet tatsächlich eine gültige app.config- (oder web.config-) Datei ist:
Nachdem Sie Ihre app.config definiert haben, können Sie sie mit dem ConfigurationManager im Code lesen Klasse . Lassen Sie sich von den ausführlichen MSDN-Beispielen nicht einschüchtern. es ist eigentlich ganz einfach.
Schreiben in die App.Config
Das häufige Ändern der * .config-Dateien ist normalerweise keine gute Idee, aber es scheint, als ob Sie nur eine einmalige Einrichtung durchführen möchten.
Siehe: Verbindungszeichenfolge ändern und app.config zur Laufzeit neu laden, in der beschrieben wird, wie die aktualisiert wird
connectionStrings
Abschnitt der Datei * .config zur Laufzeit .Beachten Sie, dass Sie solche Konfigurationsänderungen idealerweise mit einem einfachen Installationsprogramm durchführen würden.
Speicherort der App.Config zur Laufzeit
F : Angenommen, ich ändere einige manuell
<value>
in app.config, speichere sie und schließe sie dann. Wenn ich jetzt zu meinem bin-Ordner gehe und die EXE-Datei von hier aus starte, warum spiegelt sie nicht die angewendeten Änderungen wider?A : Wenn Sie eine Anwendung kompilieren, wird ihre app.config mit einem Namen, der Ihrer exe entspricht, in das bin-Verzeichnis 1 kopiert . Wenn Ihre Exe beispielsweise "test.exe" heißt, sollte sich in Ihrem bin-Verzeichnis eine "text.exe.config" befinden. Sie können die Konfiguration ohne Neukompilierung ändern, müssen jedoch die Konfigurationsdatei bearbeiten, die zur Kompilierungszeit erstellt wurde, nicht die ursprüngliche app.config.
1: Beachten Sie, dass web.config-Dateien nicht verschoben werden, sondern sich zum Zeitpunkt der Kompilierung und Bereitstellung am selben Speicherort befinden. Eine Ausnahme bildet die Transformation einer web.config .
.NET Core
Mit .NET Core wurden neue Konfigurationsoptionen eingeführt. Die Funktionsweise von * .config-Dateien scheint sich nicht geändert zu haben, aber Entwickler können neue, flexiblere Konfigurationsparadigmen auswählen.
quelle
App.config ist einfach ein
XML
basiertes Dateiformat, das die Konfigurationen auf Anwendungsebene enthält .Beispiel:
Sie können auf die Konfigurationen zugreifen, indem Sie
ConfigurationManager
wie im folgenden Codeausschnitt gezeigt Folgendes verwenden:Hinweis:
ConfigurationSettings
Dies ist eine veraltete Methode zum Abrufen von Konfigurationsinformationen.quelle
System.Configuration.dll
, um die oben genannten APIs verwenden zu können.System.Configuration.ConfigurationManager.AppSettings["Key"]
ist bereits eine Zeichenfolge, deren AufrufToString()
redundant ist.Nur um etwas hinzuzufügen, das mir in allen Antworten gefehlt hat - auch wenn es albern und offensichtlich erscheint, sobald Sie wissen:
Die Datei muss "App.config" oder "app.config" heißen und kann sich in Ihrem Projekt auf derselben Ebene befinden wie z. B. Program.cs.
Ich weiß nicht, ob andere Speicherorte möglich sind. Andere Namen (wie application.conf, wie in der ODP.net-Dokumentation vorgeschlagen) haben bei mir nicht funktioniert.
PS. Ich habe mit Visual Studio Code begonnen und ein neues Projekt mit "dotnet new" erstellt. In diesem Fall wird keine Konfigurationsdatei erstellt. Ich bin sicher, dass es andere Fälle gibt. PPS. Möglicherweise müssen Sie ein Nuget-Paket hinzufügen, um die Konfigurationsdatei lesen zu können. Im Fall von .NET CORE lautet dies "dotnet add package System.Configuration.ConfigurationManager --version 4.5.0".
quelle
/resources
App.Config ist eine XML-Datei, die als Konfigurationsdatei für Ihre Anwendung verwendet wird. Mit anderen Worten, Sie speichern darin alle Einstellungen, die Sie möglicherweise ändern möchten, ohne den Code ändern (und neu kompilieren) zu müssen. Es wird häufig zum Speichern von Verbindungszeichenfolgen verwendet.
Lesen Sie dazu diesen MSDN-Artikel .
quelle
Sie können auf Schlüssel in der App.Config zugreifen, indem Sie:
Schauen Sie sich diesen Thread an
quelle